ある関数が,本当にマクロであるよりも関数であった方が良いというのは, どうしたら分かるだろうか? マクロが必要な場合とそうでない場合の間には,大抵明確な区別がある. 基本的には関数を使うべきだ: 関数で間に合う所にマクロを使うのはエレガントでない. マクロが何か特定の利益を与えるときのみそれを使うべきなのだ. マクロが利益を与えるときとはいつだろうか? それがこの章の主題だ. 普通この疑問は,改良を目指すときでなく必要に迫られた上で発せられる. マクロで実現できることの大部分は,関数ではできない. 第8.1節ではマクロとしてのみ実装できるオペレータの種類を列挙する. だが境界線上に立つような場合もわずかにある(しかしこれは興味深い). つまりオペレータを関数で書いてもマクロで書いてもよいような状況だ. そのような状況について,第8.2節ではマクロについての賛否両論を挙げる. 最後に,マクロ