- Introduction
- Expressions, Types, and Values
- Interacting with Objects
- Immutability and Equational Reasoning
- Algebraic Data Types
- Case Classes and Sealed Traits
- Structural Recursion
- Pattern Matching
- Functions
- Function Literals
- Functions as Values
- Functions as Objects
- Higher Order Functions and Methods
- Generics
- Generic Types and Methods
- Using Functions to Decouple Concepts
- Variance
- Sequencing Computations
- Map and FlatMap
- Iterating and Looping
- Folding
- For Comprehensions
- Sequencing Computations
- Standard Library
- Packages and Companion Objects
- Options
- Tuples
- Lists, Ranges, and Sequences
- Maps and Sets
- Type Classes
- The Type Class Pattern
- Implicit Parameters
- Implicit Values
- Type Enrichment
- Combining Type Classes and Type Enrichment