Chapter 0 Preface¶
Chapter 1 Grammars¶
Chapter 2 Functional Programming¶
- -1.1. List Construction and Deconstruction
- -1.2. Developing Basic, Recursive List-processing Functions
- -1.3. Recurring On Lists That Aren’t Flat
- -1.4. Using Helper Functions with Accumulators
- -1.5. Scope, Closures, Higher-order Functions, Static vs. Dynamic Binding
- -1.6. Procedural Abstraction: Map, Curry, and Compose
- -1.7. Procedural Abstraction: The Filtering and Folding (or Reduce) Patterns
- -1.8. Combining Map and Reduce
- -1.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¶
- -1.1. Types in Programming Languages
- -1.1.1. Motivating Examples
- -1.1.2. Type System: Definition
- -1.1.3. Type System: Static Versus Dynamic
- -1.1.4. Type System: Safe Versus Unsafe
- -1.1.5. Type System: Strong Versus Weak
- -1.1.6. Type System: Typed Variables or Values
- -1.1.7. Type System: Explicit Versus Implicit typing
- -1.1.8. The Many Uses of Type Systems
- -1.2. Type Inference
- -1.2.1. Type Environments
- -1.2.2. Typing Rules Expressed as Post Systems
- -1.2.3. Typing in a Scaled-down ML
- -1.2.4. Using Post System Rules to Describe Type Inferencing in ML
- -1.2.5. Parametric Polymorphism in ML
- -1.2.6. Type inferencing in ML
- -1.2.7. Type Inferencing Problem 1
- -1.2.8. Type Inferencing Problem 2
- -1.2.9. Type Inferencing Problem 3
- -1.2.10. Type Inferencing Problem 4
- -1.2.11. Type Inferencing Problem 5
- -1.2.12. Type Inferencing Problem 6