Defining Macros in Scheme
Extensibility: A language is extensible if the language can be extended.
New Scheme control structures can be created using macros.
A macro form is evaluated in a special way:
First the macro form is expanded by applying the macro-expansion procedure or transformer (given in the definition) to the arguments.
Then the resulting expression is evaluated.