マクロ・マクロ・マクロ
(2008-02-27)
Scheme で Lisp の洗礼を受けた自分は,本書を読むまで hygienic でないマクロに対して偏見を持っていましたが,読後徐々にその考え方は変わっていきました.
冒頭の引用にある「Lisp はプログラム可能なプログラミング言語である」,この特徴に大きく貢献しているマクロの使い勝手やテクニックを,実例を交えながらこれでもかというほど見せてくれる.何度も読み返してはその知恵を肌身に染みこませていきたい,そういう類の本です.
Lispの真の実用書。ライバルには読ませたくない。
(2007-06-15)
本書の著者ポール・グレアムの別の著書「ハッカーと画家」(オーム社)で、グレアムはLisp言語の実用でのメリットを強く主張していた。WebシステムにおいてもLispを採用することで、グレアムのベンチャー企業はライバル会社よりはるかに早く強力なシステムを開発し、競争に勝ち続けた。Web開発言語もPerlからPython、そしてRubyが支持されてきているが、それはLisp化への流れであるという。
しかし、学術的なLispのテキストを見ても、なかなかそれが理解できなかったので、グレアム自身がこれを懇切丁寧、そして実践的に解説してくれている本書は実に興味深いと思う。
グレアムが強調するLispのメリットはマクロである。本書でも、マクロは機能面は(Lisp独特のクセも含め)もとより、微妙な問題でもある、マクロを使うべき場面、関数との使い分け、効果的なマクロの定義方法からマクロの欠点まで、絶妙な実例を参考にしながら教えてくれている。さらに、Prolog言語の実装やオブジェクト指向Lispも簡易ながら実践的に解説しているのも面白い。システム開発のライバルには読ませたくない本だ。