Y组合器的推导



在阅读这篇关于Y-combinator的文章(我强烈推荐(时,我偶然发现了这个转换:

(define Y 
(lambda (f)
((lambda (x) (x x))
(lambda (x) (f (x x))))))
Note that we can apply the inner lambda expression to its argument to get an equivalent version of Y:
(define Y 
(lambda (f)
((lambda (x) (f (x x)))
(lambda (x) (f (x x))))))

有人能解释一下我们是如何得到Y的第二个版本的吗?我们走了哪些步骤到达那里?

您正在应用(lambda (x) (x x))(lambda (x) (f (x x)))
执行应用程序以获得(lambda (x) (f (x x))(lambda (x) (f (x x))
请注意,左边的lambda创建了其参数的两个副本,这就是右边的lambda。

最新更新