質問
私はラムダ計算と教会の数字の基礎を理解しようとしています。私は読書をたくさんやって練習し、私はいくつかの機能がどのように動作するか確認するためにしようとして立ち往生保つように思われています。
次のように私が上で立ち往生しています例です。おそらく誰かが私が間違った場所を説明することができます。
1教会数字はとして表すことができます。
λf. λx. f x
教会数字でべき乗関数(M N )として与えることができます:
λm. λn. n m
私がやりたいすべては、私がこれをやっている1 1 = 1ので、1と1に指数関数を適用することにより、私は、戻って1を得ることを示しているので、私はどのようにこれらのより良い理解します機能が働きます。私の作業は、次の通りであると私は毎回はまります:
// Exp (1 1)
(λm. λn. n m) (λf1. λx1. f1 x1) (λf2. λx2. f2 x2)
// Substitute for m
(λn. n (λf1. λx1. f1 x1)) (λf2. λx2. f2 x2)
// Substitute for n
(λf2. λx2. f2 x2) (λf1. λx1. f1 x1)
// Substitute for f2
(λx2. (λf1. λx1. f1 x1) x2)
// Substitute for f1
λx2. (λx1. x2 x1)
そしてそこに私はこだわっています。私は唯一の「f
で左S」x
の両方を失っている、と私は1つのバックを持っていません。どこが間違っているんだ?
解決
どこが間違っているんだ?
どこにもありません!あなたは完了です。覚えておいて、変数名は重要ではありません。それが重要である構造です。名前f
かはx2
意味がありません。それだけで、彼らがどのように使用されるか問題になります。 1のための教会の数字がある。
λf. λx. f x
、あなたが持っている
λx2. (λx1. x2 x1)
x1
するとx
<=>出来上がりする<=>名前を変更!あなたが持っている
λf. (λx. f x)
= λf. λx. f x
所属していません StackOverflow