Common Lisp入門というより,関数型言語を始める前にという位置づけで
考えるとよいと思う.
この本だけでLispでプログラムが書けるようにはならないが,なぜ関数型で
書かなければいけないんだろう,という疑問を抱きながらカッコ地獄に迷う
ことはなくなる.という大きな役割を果たしてくれるだろう.
門外漢にはとっつきにくいLispであるが,本書では処理系のインストールから
紹介している.
本書で紹介されている関数型言語の4つの特徴とは
1. 式は評価され,値を返すもの
2. 繰り返しは再帰で書く
3. 代入式を使わない
4. 高階関数が利用できる
というもの.
例えばLispではsetqを使って代入ができるので純粋には関数型言語ではない.
など,関数型言語という軸をしっかり持って書かれていると思う.
再帰の章では,再帰の解説としては珍しく,「処理速度,コストの観点からいえば
再帰するべきではない」ときちんとかかれており,更に手続き方での書き方
も対比して書かれているのがよかった.
また,最後に末尾再帰の解説がされているのが個人的に嬉しかった.
各章の最後に「この特徴とCプログラミングとの関係」という説明が入っている
ため,従来の手続き型言語に慣れている人の理解を助けてくれる.
最終章ではλ計算についての解説がある.
プログラムを組む上ではλ計算について知っている必要はないのだが,
具体的な例を交えて説明してくれているので,計算理論の難しそうな本を
開くまでもなく,λ計算を理解できる.
例えばPerlやRubyはLispに大きく影響されている言語であり,
プログラミングを行う上でLispの概念を学ぶことは大きな意義がある.
エッセンスを学ぶという意味で本書は良い入門書だと思う.