Datatype-Programming in Racket Without Structs
Datatype-Programming in Racket With Structs
Implementing Programming Languages
What Your Interpreter Can and Cannot Assume
Implementing Variables and Environments
Racket Functions As "Macros" For Interpreted Language
Static Versus Dynamic Typing, Part One