Next: Indenting Macros, Previous: Defining Macros, Up: Macros [Contents][Index]
Macro expansion can have counterintuitive consequences. This section describes some important consequences that can lead to trouble, and rules to follow to avoid trouble.
| • Wrong Time: | Do the work in the expansion, not in the macro. | |
| • 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. |