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コンビネータを調べずじまいになってしまっていた。もったいない事したなぁ。まぁ今また出会えたからいいか。