Y-Combinator的推导
Derivation of the Y-Combinator
在 article 关于 Y 组合器(我强烈推荐)的过程中,我偶然发现了这个转换:
(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 创建了其参数的 2 个副本,即右侧的 lambda。
在 article 关于 Y 组合器(我强烈推荐)的过程中,我偶然发现了这个转换:
(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 创建了其参数的 2 个副本,即右侧的 lambda。