- PART 1: INTRODUCTION TO FP
- What is functional programming?
- Getting started
- Functional data structures
- Handling errors without exceptions
- Strictness and Laziness
- Purely functional state
- PART 2: FUNCTIONAL DESIGN AND COMBINATOR LIBRARIES
- Purely functional parallelism
- Property-based testing
- Parser combinators
- PART 3: COMMON STRUCTURES IN FUNCTIONAL DESIGN
- Monoid
- Monads and functors
- Applicatives and traversable functors
- PART 4: Effects and I/O
- External effects and I/O
- Local effects and mutable state
- Stream processing and incremental IO