「セルの海 マクロの空」の懇親会で知り合いになったオーム社の方から、約束通り「実践 Common Lisp」を献本して頂きました。お礼も兼ねまして、感想を書いておきます。
お世辞抜きに、僕はこんな Common Lisp の本が欲しかったのです。
- 作者: Peter Seibel,佐野匡俊,水丸淳,園城雅之,金子祐介
- 出版社/メーカー: オーム社
- 発売日: 2008/07/26
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 192回
- この商品を含むブログ (69件) を見る
看板に偽りなし
Lisp の最も有名な宣伝マンは、ポール・グレアム氏でしょう。
「普通のやつらの上を行け」を読んで Lisp に興味を持った人もいるかもしれません。また、「スパムへの対策」で、最初のベンジアンフィルタが Lisp で書かれたことに驚いた人も何人か知っています。
ポール・グレム氏のエッセイ集「ハッカーと画家」は、プログラマーなら読んでおきたい一冊です。一方で、「On Lisp」は、内容は示唆に富んでいますが、決して分りやすいとは言えません。小難しい数学の教科書を読んでいる気分になります。彼は優秀なエッセイストですが、生徒の気持ちが分る先生ではないのでしょう。
- 作者: ポールグレアム,Paul Graham,川合史朗
- 出版社/メーカー: オーム社
- 発売日: 2005/01/01
- メディア: 単行本
- 購入: 109人 クリック: 4,884回
- この商品を含むブログ (582件) を見る
- 作者: ポールグレアム,野田開,Paul Graham
- 出版社/メーカー: オーム社
- 発売日: 2007/03/01
- メディア: 単行本
- 購入: 10人 クリック: 146回
- この商品を含むブログ (128件) を見る
「実践 Common Lisp」は、グレアム氏が言わんとしていることを、分りやすく解説しています。UCB で講師をしている経験が活きているのでしょう。また、例題も豊富です。まず、そのものズバリ、ベイジアン・フィルタを実装してみせます。また、バイナリ・ファイルの解析、データベースの構築、HTML の作成と言った例題が、ウェブ・アプリケーションへ収斂して行くさまは見事という他ありません。
この本が、Jolt Award を受賞したのも頷けます。
対象となる読者
この本では、Common Lisp の関数、特殊フォーム、あるいはマクロが丁寧に解説されていますが、Lisp の初心者が読みこなすのは辛いのではないかと思います。
むしろ、昔 Lisp を使ったことがあるが、昔の知識のままで止まっている人とか、最近の Scheme ブームに乗じて Scheme をかじったことがある人などにお勧めです。
そしてなにより、一番お勧めしたい人は、Lisp に対して偏見を持っている人です。偏見は、粉々に砕かれることでしょう。
この本の主題は、いかに Common Lisp で実践的なプログラムを開発するかということです。ですから、「内容がぜんぜん関数型言語っぽくない」と言った苦言は的外れです。そもそも、著者は Common Lisp を関数型言語ではないと割り切っています。
再帰など、関数型言語っぽいことを学びたいなら、ぜひ Scheme を勉強して下さい。純粋な関数型言語を学びたいなら、Haskell をどうぞ。
構成
グレアム氏は、他の言語が追随できない Lisp の機能として、マクロを挙げています。この本でも、マクロを中心に話が展開します。
関数と変数を説明したら、基本データ型に行く前に、マクロを説明してしまいます。また、リストよりも配列やハッシュを先に解説します。Lisp の本では、極めて画期的なことです。
訳の品質
全体的に読みやすいのですが、意味不明なところも散見されます。訳者が複数いるので、訳者によって品質にバラツキがあるのかもしれません。
おまけ -- Emacs Lisper の人へ
Emacs Lisp は、Common Lisp に近い Lisp です。ただし、Emacs Lisp はかなり古くさい Lisp でもあります。この本を読むと、高見から Emacs Lisp を眺められるようになるでしょう。