K
组合子为K := (λxy.x)
,不动点组合子为Y := λf.(λx.f x x) (λx.f x x)
。我试着计算YK
:
YK = (λx.Kxx)(λx.Kxx) = (λx.x)(λx.x) = (λx.x) = I
因为YK
是K
的不动点:
K(YK) = YK
KI = I
KIe = Ie = e
对于任意e。但是KIe
应该等于I
!
您没有从y组合子的正确定义开始。它应该是Y := λf.(λx.f (x x)) (λx.f (x x))
(注意x x
周围的括号)。因为λ演算是左结合的,所以f x x
等于(f x) x
,这显然是行不通的。
由于Y K不能约为I,所以不允许进行以下替换。
K (Y K) = Y K
K I = I
所以K I e
就是
K I e := (K I) e
((λx.λy.x) I) e
(λy.I) e
I