04/07/01 12:02
C, C++だと
MYMACRO(a,b,c) { ... } // a,b,c,..は可変個引数
から
int a=0;
int b=1;
int c=2;
...
my_macro_end(a,b,c);
を生成するようなのは書けないでしょ? Lispのマクロはできます。
C++やJavaだとデザインパターンなどで似たようなコードをクラス毎にあちこち
で書かないといけない(が、C++のテンプレートでは表現できない)ことがある。
そういう場合にパラメータを与えて雛形からコードを生成するスクリプトをRuby
などで書くことを考えましょう。
Lispのマクロなら全部Lispだけでできます。