Chapter 1. Functions
- Calling Functions
- Higher Order Functions and Function Composition
- Creating Functions
- Anonymous Functions
- Multi-arity Functions
Chapter 2. Data types and structures
- Data types overview
- Lists
- Lazy sequences
- Vectors
- Sets
- Maps
- Building with zipmap and merge
- Exercises
- Collection and Sequence abstractions
Chapter 3. Scope
- Scope, symbols, values
- Vars
- Dynamic Scope
Chapter 4. Destructuring
- Sequential destructuring
- Exercises
- Associative destructuring
- Destructuring nested structures
- Destructuring parameters; keyword arguments
Chapter 5. Control structures
- Conditions: if, when
- Conditions: case, cond
- List comprehension: for
- Equality, truthy, falsy, nil
Chapter 6. Shared state
- Atoms
- Deeper swap! and reset!
- Refs and dosync
- Exercises
- Further reading
Chapter 7. Macros
- Quoting
- Unquoting
- Creating macros
Chapter 8. Namespaces
- Namespaces, interns
- Require
- Require and refer
Chapter 9. Polymorphism, Multimethods and Protocols
- What is Polymorphism
- Multimethods
- Multimethods with maps
- The Expression Problem
- Protocols
- New types with deftype
- defrecord
Chapter 10. Conclusions
- What is next