Macro 1 — language extension (3:49)
Why we’re done with interpreters, and introducing macros as a mechanism for language extension.
Macro 2 — define-syntax-rule (2:25)
Explanation of the define-syntax-rule form for defining pattern-based macros.
Macro 3 — syntax-rules (2:53)
Explanation of the syntax-rules form for defining pattern-based macros (with define-syntax).
Macro 4 — ellipses (3:39)
Using ellipses (...) in patterns and templates.
Macro 5 — hygiene (5:39)
Hygiene means lexical scope at the macro level, and it is a property of macros or macro systems.
Macro 6 — identifier macros (3:04)
Explanation of the syntax-id-rules form for defining pattern-based macros (with define-syntax).
Macro 7 — macro-generating macros (2:19)
Macro-generating macros and escaping ellipses.
Macro 8 — call-by-reference example (6:40)
An extended example of using pattern-based macros to implement a language construct. See cbr.rkt.
Macro 9 — modules (3:38)
How macros and modules interact, and the providesublanguage for describing module exports.
Macro 10 — #lang (1:35)
A rough overview of how #lang works.