私が読んでいるコンピュータープログラムの構造と解釈の本は、ゼロとインクリメント関数を定義することによって教会の数字を提示しています
zero: λf. λx. x
increment: λf. λx. f ((n f) x)
これは私にはかなり複雑に思え、それを理解して 1 つ ( λf.λx. f x
) と 2 つ( ) を導出するのに非常に長い時間がかかりましたλf.λx. f (f x)
。
ゼロを空のラムダとして、代わりにこの方法で数値をエンコードする方がはるかに簡単ではないでしょうか?
zero: λ
increment: λf. λ. f
λ. λ
これで、1 つ ( ) と 2 つ( ) などを導出するのは簡単λ. λ. λ
です。
これは、ラムダで数値を表現するためのはるかに明白で直感的な方法のように思えます。このアプローチには何らかの問題があり、教会の数字がそのように機能する正当な理由がありますか? このアプローチはすでに証明されていますか?