この答えは言う
以下は、ラムダ計算における基本的な y コンビネータです。
Y f = (\x -> f (x x)) (\x -> f (x x))
つまり、Clojure では次のようなものです。
(defn Y [f]
((fn [x] (x x))
(fn [x]
(f (fn [& args]
(apply (x x) args))))))
(def fac
(fn [f]
(fn [n]
(if (zero? n) 1 (* n (f (dec n)))))))
(def fib
(fn [f]
(fn [n]
(condp = n
0 0
1 1
(+ (f (dec n))
(f (dec (dec n))))))))
y-Combinator の別の式を次に示します (引数のステップ 2)。
チューリング完全言語をエンコードしました (y-Combinator を使用したため) (引数のステップ 3)
私の質問は、y-combinator がチューリング等価性を提供するのはなぜですか? それは議論の単なる仮定だったようです。