Functional Programming

Programming as the evaluation of functions, not the mutation of state. Purity and immutability, higher-order functions and closures, folds and algebraic data types, laziness, and the mysterious-sounding-but-friendly monad.

This subject course follows the topic vertically, across the years it spans. The lessons are still being written — each is shown as a placeholder.

Year 2 — Functional Programming

  1. Pure Functions and Immutability
  2. Higher-Order Functions
  3. Closures
  4. Recursion and Folds
  5. Algebraic Data Types
  6. Lazy Evaluation
  7. Monads