Playlist | schedule page slides as PDF |
Macro 1 — languages and sugar (2:26)
Starting with a typical variant of Moe, some thoughts on syntactic sugar that we might like to add.
Macro 2 — syntax objects (6:44)
Extending Moe to support syntax objects, pattern matching, and templates.
Macro 3 — shrubbery (4:56)
Syntax objects encode shrubbery forms, and we can work with abstract shrubbery syntax with functions at the Shplait level instead of pattern matching. See lambda_matchless.rhm.
Macro 4 — pattern and template examples (2:07)
Examples for the functions that we need implement in our interpreter to support syntax pattern matching and template syntax construction.
Macro 5 — match implementation (8:26)
Implementation of syntax pattern matching. See let_macro.rhm.
Macro 6 — template implementation (5:09)
Implementation of template syntax construction.
Macro 7 — macro examples (3:49)
Examples of macros in Moe to be supported by a new let_macro form.
Macro 8 — let_macro (2:16)
Implementing the let_macro form. See let_macro.rhm.
Macro 9 — capture and hygiene (2:44)
Using syntax_generate_temporary to avoid accidental capture of variables in a macro expansion.