PREV UP next GNU Emacs Lisp Reference Manual

12.6: Common Problems Using Macros

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.