Extending a Language — Writing Powerful Macros in Scheme
Table of Contents
1. Preface
2. Prerequisites
2.1. Chez Scheme
2.2. Emacs
2.3. Org
2.4. Geiser
2.5. Paredit
2.6. Initialization
3. The Scheme programming language
4. Some simple macros
4.1. Incrementing a variable
4.2. A tracing let
4.3. Accessing vector locations through variables
5. Syntax objects
5.1. Identifiers
5.2. Constructing syntax objects
5.3. Destructing syntax objects
6. Syntax-case macros
6.1. Macro transformers
6.2. A fluid let
6.3. Implementing a variant type in Scheme
7. Breaking...
Read more at mnieper.github.io