« Pythonで「例外が投げられた関数のローカル変数」を取得 |Main| 西尾泰和の活動ダイジェスト »

« Pythonで「例外が投げられた関数のローカル変数」を取得 | Python | Pythonでアッカーマン関数 »

PythonでYコンビネータを勉強

>>> (lambda f:((lambda p:(f(lambda x:(p(p)(x)))))(lambda p:(f(lambda x: (p(p)(x)))))))(lambda f:(lambda x: not(x) and 1 or x * f(x-1)))(5)
120

一応、階乗を再帰呼び出しで計算してみました。たぶん冗長な括弧があると思います。

トラックバック(Trackback)

Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/190

ご意見・ご感想をお送りください(フィードバック)

(フィードバックはメールで送信され、基本的に表示されませんが、内容によっては公開させていただくこともございます。ご了承ください。Your comment doesn't appear the page immediately. If the comment has value to other people, it will be put on the page or subsequent entries. Thank you.)

上の情報は、いずれも未記入でかまいません。 All of above questions are optional.