Playlist | schedule page slides as PDF |
Let-Macro 1 — sugar (2:58)
Our usual core language, and then some thoughts on syntactic sugar that we might like to add. See core.rkt.
Let-Macro 1a — S-expression refresher (2:36)
A refresher on S-expressions and introduction to untyped S-expressions.
Let-Macro 1b — transformer functions (2:53)
Transformer functions on untyped S-expressions using primitive operations
Let-Macro 1c — case expander (3:31)
Expanding the case form as an untyped S-expression.
Let-Macro 2 — extensible parser (4:51)
Making our language extensible by defining the parser to provide a hook for S-expression rewrites. See core+case.rkt, core-extensible.rkt, and core-ext+case.rkt.
Let-Macro 3 — S-expressions (4:34)
Adding S-expressions to our core language as a step toward making the language extensible. See s-exp.rkt.
Let-Macro 4 — binding and expanding macros (7:00)
Changing the parser to support a let-macro form and to recognize uses of macro bindings. See let-macro.rkt.
Let-Macro 5 — hygiene (2:01)
Using gensym to avoid accidental capture of variables in a macro expansion. See gensym.rkt.