14.5 Common Problems Using Macros
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. |