Lispのマクロ機能を使うと,コードの変換によってオペレータを実装することができる. マクロ定義とは実質的にLispコードを生成する関数だ ---つまりプログラムを書くプログラムだ. この一歩から始めて,大きな可能性と予期せぬ危険に足を踏み入れていく. 第7章から第10章はマクロの基礎講座だ. この章ではマクロがどのように動作するのかを説明し, マクロを書いたり動作を確かめるときのテクニックを示し, マクロを書くスタイルについての話題に進む. マクロはどのように動作するか マクロは呼び出せるし値を返せるので,関数と一緒くたにされがちだ. マクロ定義は関数定義に似ていることもあるし, 実際はマクロであるdoを普段「組み込み関数」と呼ぶ人も多い. しかしこの喩えを突き詰めすぎると混乱の元になる. マクロの動作は普通の関数とは違っている. マクロはどのように,そしてなぜ違うのかを知ることは,マク