星田さんの記事に対するコメント。
というわけで、明日からはちょっとOn Lisp読んでマクロにする必要のある書き方を考えます(^o^)
1. Lispの仕様書あるいはリファレンスにはマクロ展開のテンプレが書いてる場合がある。
Common Lisp Hyperspecのtypecaseにも「与えるべき式」と「マクロ展開型がどうなるか」書いてあるんで、これがヒントになり得る。
こういうのをアンチョコとして利用しよう。
少なくとも今回のケースは「typecaseの書式をどうするか」のヒントにはなる。
また、Common Lisp Hyperspecには実行例(Examples)があるんで、こういうのがテストケースになりうる。
2. typecaseの展開型は既に何度も手で打ち込んでいる。
ポール・グレアムの発言はこうだ。
マクロのやっていることと言ったら,打ち込む文字の節約が全てだ.
星田さんは既にtypecaseの「展開型」を何度も書いている。つまり、describeのvariantとcaseの組み合わせを何回も書いている。
その「組み合わせ」をより短い記述で成立させよう、って事だ。