マクロを使用すると、新しい制御構造やその他の言語機能を定義できます。マクロは関数とよく似た形で定義されますが、値の計算方法を指定するのではなく、その値を計算することになる別のLisp式の計算方法を指定します。この式のことを、マクロの展開と呼びます。
マクロがこれを行えるのは、関数のように引数の値を扱うのではなく、引数の未評価式を操作するためです。したがって、これらの引数式やその一部を含む展開を構築することができます。
通常の関数で実現できる処理をマクロで行っている場合は、単に高速化を図る目的で、代わりにインライン関数の使用を検討してください。インライン関数を参照してください。