Type Systems & Functional Programming
A 16-module path through type systems & functional programming, in study order from foundations to the frontier.
Modules
- What Is a Type System?
- Static vs Dynamic Typing
- Type Checking and Type Judgments
- The Lambda Calculus
- Beta Reduction and Evaluation
- Church Encodings
- The Simply-Typed Lambda Calculus
- Type Safety and Soundness
- Type Inference and Hindley-Milner
- Parametric Polymorphism
- Algebraic Data Types and Pattern Matching
- Recursion and Higher-Order Functions
- Closures
- Laziness and Evaluation Strategies
- Currying and Function Types
- Monads: An Introduction