Y combinator
メモメモ。
y f = f (y f) fact f x = if x==0 then 1 else x * f (x-1)
Main> y fact 10 3628800 Main>
Scheme で書かれた Y Combinator の解説を読んだけど、僕にはちょっとわからんかった。遅延評価のある Haskell だとすごく簡単で、わかりやすい(気がする)。
なんだか Y Combinator は、引数に取った関数を repeat してうまくくっつけてるだけのように感じるんだけど、どうなんだろう。
束縛変数しかないとか、なんかそういうところがすごいんだろうか。(←意味はまったくわかってない)