Chapter 0 Preface¶
Chapter 1 Grammars¶
Chapter 2 Functional Programming¶
- 2.1. List Construction and Deconstruction
- 2.2. Developing Basic, Recursive List-processing Functions
- 2.3. Recurring On Lists That Aren’t Flat
- 2.4. Using Helper Functions with Accumulators
- 2.5. Scope, Closures, Higher-order Functions, Static vs. Dynamic Binding
- 2.6. Procedural Abstraction: Map, Curry, and Compose
- 2.7. Procedural Abstraction: The Filtering and Folding (or Reduce) Patterns
- 2.8. Combining Map and Reduce
- 2.9. Continuations and Continuation Passing
Chapter 3 Lambda Calculus¶
Chapter 4 Interpreting the Functional Language SLang 1¶
Chapter 5 Interpreting the Imperative Language SLang 2¶
Chapter 6 Variations on Parameter Passing¶
Chapter 7 Type Systems¶
- 7.1. Types in Programming Languages
- 7.1.1. Motivating Examples
- 7.1.2. Type System: Definition
- 7.1.3. Type System: Static Versus Dynamic
- 7.1.4. Type System: Safe Versus Unsafe
- 7.1.5. Type System: Strong Versus Weak
- 7.1.6. Type System: Typed Variables or Values
- 7.1.7. Type System: Explicit Versus Implicit typing
- 7.1.8. The Many Uses of Type Systems
- 7.2. Type Inference
- 7.2.1. Type Environments
- 7.2.2. Typing Rules Expressed as Post Systems
- 7.2.3. Typing in a Scaled-down ML
- 7.2.4. Using Post System Rules to Describe Type Inferencing in ML
- 7.2.5. Parametric Polymorphism in ML
- 7.2.6. Type inferencing in ML
- 7.2.7. Type Inferencing Problem 1
- 7.2.8. Type Inferencing Problem 2
- 7.2.9. Type Inferencing Problem 3
- 7.2.10. Type Inferencing Problem 4
- 7.2.11. Type Inferencing Problem 5
- 7.2.12. Type Inferencing Problem 6