我是定点组合器世界的新手,我猜它们习惯于在匿名 lambda 上递归,但我还没有真正使用它们,甚至无法完全理解它们。
我已经在 Javascript 中看到了Y 组合器的示例,但无法成功运行它。
这里的问题是,有人可以给出一个直观的答案:
- 什么是定点组合器(不仅在理论上,而且在某些示例的上下文中,以揭示该上下文中的定点究竟是什么)?
- 除了 Y 组合器之外,还有哪些其他类型的定点组合器?
加分项:如果示例不只是使用一种语言,最好也使用Clojure。
更新:
我已经能够在Clojure中找到一个简单的示例,但仍然很难理解 Y-Combinator 本身:
(defn Y [r]
((fn [f] (f f))
(fn [f]
(r (fn [x] ((f f) x))))))
虽然这个例子很简洁,但我发现很难理解函数中发生了什么。提供的任何帮助都会很有用。