Pythonのネタです。そういえば、やろうとしてすっかり忘れていたんですが、Leopardにして、Pythonが2.5.1になり、3項演算子(Cでよく使うやつ。評価式 ? True結果 : False結果)がサポートされていたんでした。これによって、lambdaの中にif文がかけるようになりました。
で、lambdaを使って再帰をするにはこんなやり方が。
で、ふと見かけた、AmachangさんのサイトでYコンビネータのネタをやってて、あ、これ、Pythonでもできんじゃね、ということでやってみた。
>>> (lambda x: True if x > 5 else False)(3) False
>>> a = lambda x: 1 if 2 > x else a(x-1) * x >>> a(10) 3628800
