Language 1 — non-hygienic macros (3:30)
Sometimes, you don’t want hygienic macro expansion, and for that case, datum->syntax gives you control over lexical context.
Language 2 — macro composition (1:41)
Why non-hygienic macros tend to be a bad idea.
Language 3 — syntax parameters (3:20)
A syntax parameter is one way for macros to cooperate, and it’s a better approach for many syntactic forms than a non-hygienic macro. See method-macro.rkt.
Language 4 — class (5:23)
Implementing class and new as macros.
Language 5 — get and send (2:33)
Implementing get and send as macros. See class-macro.rkt, although the implementation includes some repairs described in video 9.
Language 6 — language (4:03)
To build the complete class-based language, we need to handle arithmetic and number literals.
Language 7 — #%module-begin (2:35)
To finish the class-based language, we need to check that a program has a sequence of class declarations followed by an expression. See class-lang.rkt.
Language 8 — posn example (2:11)
Running our old posn and posn3D example. See posn.rkt.
Language 9 — source locations (4:12)
Tweaking macros to get better source reporting for run-time errors.