これは評判通りの良書。
最初のほうはさらさら読めて、僕は7章からが面白かった。
7章では関数とは何か?ということが集合から説明されていく。有限関数の表現の仕方とか一対一対応とか。
8章はlamdaから始まって継続の話でこれは面白いがさらっと流れる。継続とは何かということは良く考えないと出てこないかも
9章はコラッツの問題,アッカーマン関数が出てきて最後にY-combinator
pythonで書いてみた( fact(5) )。
(lambda g: (lambda f: g(lambda arg: f(f)(arg)))
(lambda f: g(lambda arg: f(f)(arg))))
(lambda f: lambda n: (1 if n<2 else n*f(n-1)))(5)
10章はSchemeを実装する話で、Javaなんかで実装したことがあるが、こっちのほうが環境の動きというものがよくわかった。
8,9,10は色々分かっている人向けかな。でもちょっとは知っていればかなり理解が進むし、深まり度も高まってオススメかも。