Next: Customization, Previous: Functions, Up: Top [Contents][Index]
マクロ(macros)は、新たな制御構造や、他の言語機能の定義を可能にします。マクロは関数のように定義されますが、値の計算方法を指定するかわりに、値を計算する別のLisp式を計算する方法を指示します。わたしたちはこの式のことをマクロの展開形(expansion)と呼んでいます。
マクロは、関数が行うように引数の値を処理するのではなく、引数のために未評価の式を処理することにより、これを行うことができます。したがってマクロは、これらの引数式またはその一部をを含む式を構築することができます。
マクロを使用して通常の関数が行えることを行う場合、単にそれが速度面の理由ならば、かわりにインライン関数の使用を考慮してください。Inline Functionsを参照してください。
• Simple Macro: | 基本的な例。 | |
• Expansion: | いつ、なぜ、どのようにしてマクロが展開されるか。 | |
• Compiling Macros: | コンパイラーによりマクロが展開される方法。 | |
• Defining Macros: | マクロ定義を記述する方法。 | |
• Problems with Macros: | マクロ引数を何回も評価しないこと。ユーザーの変数を隠さないこと。 | |
• Indenting Macros: | マクロ呼び出しのインデント方法の指定。 |