3

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!

4

1 に答える 1

4

Y-combinatorの正しい定義から始めていません。である必要がありますY := λf.(λx.f (x x)) (λx.f (x x))( の周りの括弧に注意してくださいx x)。ラムダ計算は左結合であるため、f x xは に等しく(f x) x、明らかに機能しません。

正しい定義を使用すると、

YK := (λf.(λx.f (xx)) (λx.f (xx))) K
       (λx.K (xx)) (λx.K (xx))
       K ((λx.K (xx)) (λx.K (xx)))
       K (YK)

YK は 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
于 2011-11-27T16:46:21.553 に答える