Yコンビネータと遭遇

Schemeへの道Scheme勉強中のこと。
9. lambda式の最後の
「[参考]lambda式による再帰呼び出し関数」がさっぱり分からなかった。
けれど糸口を発見。

(define Y 
      (lambda (f) 
        ((lambda (m) 
           (f (lambda (a) ((m m) a))))
         (lambda (m) 
           (f (lambda (a) ((m m) a)))))))

Yと言う名前から直感で「Yコンビネータ」の名前を思い出した。ググって良さげな解説をピックアップ。

わかりやすい解説をありがとうございます。
やっぱりあれはYコンビネータだったんだ。

ラムダ計算面白いなぁ。ちょっと真面目に勉強したい。

Yコンビネータを知っていた経緯

Yコンビネータの事は昔に、ちょっと草植えときますね型言語 Grassのページで知った。奇妙な見た目のGrassに惹かれて、ラムダ計算について少し勉強して、関数型言語の雰囲気に少し慣れて、ようやくGrassでのプログラミングを少しできるようになって。Yコンビネータを調べずじまいになってしまっていた。もったいない事したなぁ。まぁ今また出会えたからいいか。