MACRO は SPECIAL と似ており、引数リストが評価されないまま関数に渡され る。MACRO 型関数により一度処理された式はもう一度 evaluator により評価 される。
CMACRO と MACRO の違いは、その関数が C で記述されているか、ユーザ定義 かの違いである。
CMACRO 型の関数としては if、let がある。if や let も確かに関数と言うよ りは制御構造である。if、let は一度 cond 式、lambda 式に変換され、変換 後の cond 式、lambda 式が評価される。
MACRO 型の関数の定義は defmacro を使って行う。defmacro に関しては
「##62>