2
なぜλ-calculusの最適なエバリュエーターは数式なしで大きなモジュラ指数を計算できるのですか?
教会番号は、関数としての自然数のエンコードです。 (\ f x → (f x)) -- church number 1 (\ f x → (f (f (f x)))) -- church number 3 (\ f x → (f (f (f (f x))))) -- church number 4 きちんと、2つの教会の数を適用するだけで指数化できます。つまり、4対2を適用すると、教会番号16、またはを取得します2^4。明らかに、それは全く実用的ではありません。教会の数は線形のメモリ量を必要とし、本当に非常に遅いです。10^10GHCIがすぐに正しく答えるようなものを計算すると、時間がかかり、とにかくコンピュータのメモリを合わせることができませんでした。 最近、最適なλエバリュエーターを使って実験しています。私のテストでは、最適なλ計算機に誤って次のように入力しました。 10 ^ 10 % 13 べき乗ではなく、乗法であると考えられていました。指を動かして、絶え間なく実行されているプログラムを絶望的に中止する前に、それは私の要求に答えました: 3 { iterations: 11523, applications: 5748, …