The basic facts of macro expansion have counterintuitive consequences. This section describes some important consequences that can lead to trouble, and rules to follow to avoid trouble.
• Argument Evaluation: | The expansion should evaluate each macro arg once. | |
• Surprising Local Vars: | Local variable bindings in the expansion require special care. | |
• Eval During Expansion: | Don’t evaluate them; put them in the expansion. | |
• Repeated Expansion: | Avoid depending on how many times expansion is done. |