The Story of Mac: A Just-So Story
Summary
The article explains Lisp macros and macro expansion, contrasting expansion time with runtime and showing how macros generate code for later execution. It covers DEFMACRO, backquote mechanics, destructuring parameter lists, and debugging macro expansions, including examples like do-primes and testing with macroexpand-1. It also discusses macro hygiene, leaks, and patterns such as gensym, with-gensyms, and once-only to write robust macro code.