初めての人のためのLISP[増補改訂版(Amazon.co.jp)] が3月中頃にAmazonより届き、ちまちまと読んでいた。実際のLispコーディングはまだ行なっていないが、Schemeを勉強してみたい。
感想を一言で言えば、rubyistなら読め!ということ。いや僕はrubyistというほどで無いし、世の優秀なrubyist達はLispなど知ってて当然なのだろうが。まあとにかく、rubyを理解したかったり、ruby大好きだったりするなら読むべき。JavaScriptやPython好きも読むべきかも。
まつもとゆきひろのハッカーズライフ:第11回 Let’s Talk Lisp (1/2) - ITmedia エンタープライズ でMatz自身が言及しているように、rubyは非常に強くLispの影響を受けた言語で有り、rubyの可愛い点の第二位ぐらいに相当するブロック付きメソッド回りは、特に影響を受けているということが良く分かった。関数(というかブロック)を扱う機能だけで無く、キーワード、リフレクション周辺の思想なども色濃くLisp風なのが感じられ、「ALGOLの皮を被ったLisp」という表現が理解出来る。そういう訳でrubyを有る程度使えるならこの本の理解は容易だと思うが、逆向きに学習しているような奇妙な感覚に襲われた。
本書自体について言うと、やたら適当な語り口でふざけた本で有るかのように思わせながらも、Lispという言語の低レベルな部分まで立ち入り、Lispの思想を全紙面から放たんばかりの勢いの、非常に充実した本で有った。伝説の本と言われるのも納得。「とりあえずLispを書きたい」という人にはおそらく向かないが、「とりあえずLispって何なの括弧何それおいしいの」という僕のような人には本当に良かった。「Lispプログラミング入門」というより「Lisp教入門」という感じ。
とにかく自由闊達なプログラミング言語で、雑草のような生命力を持ち、50年以上もの時を形態を様々に変えながら生きながらえてきた言語、そのDNAを教えたげるから後は自分で勉強しろと言われた気分で、網羅的な関数の解説などは後ろの付録でしか為されていないし、データ型やキーワードについても殆んど説明されていないものも多い。そして、それでも何とかLispをやっていけそうだと思う本。まさしく、本書帯に書かれている通り、
道はnilを生ず。nilはアトムを生じ、アトムはS式を生じ、S式は万物を生ず。
のだろう。