Macros

Macros allow you to write functions that manipulate expressions before they have been evaluated. Macros take expressions as parameters and return an expression: