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: | マクロ呼び出しのインデント方法の指定。 |