It's not about pattern matching: you can use pattern matching
to destructure the input of a syntax transformer (macro)
in Common Lisp too. Using pattern matching makes the macros easier
to read though [but that is of course a matter of opinion].
The "special sauce" is being explicit about compile time vs runtime
(aka using phases).
The paper "Composable and Compilable Macros: You Want it When?" by
Matthew Flatt describes why conflating runtime and compile time is a problem.
The "special sauce" is being explicit about compile time vs runtime (aka using phases).
The paper "Composable and Compilable Macros: You Want it When?" by Matthew Flatt describes why conflating runtime and compile time is a problem.
http://www.cs.utah.edu/plt/publications/macromod.pdf