Advanced Functional Programming

Graham Hutton, University of Nottingham


This is an advanced course on functional programming in Haskell. It is designed for second year computing students in Nottingham, but the materials are made freely available on YouTube.

The course is based on part II of Programming in Haskell.


       Book 2e Cover


  1. Course Overview
  2. Sudoku I: First Steps
  3. Sudoku II: Initial Solvers
  4. Sudoku III: Improving Performance
  5. Functors
  6. Applicative Functors
  7. Monads I: Basic Concepts
  8. Monads II: Maybe, List and State
  9. Monads III: State Revisited
  10. Monads IV: Generics, Laws and Benefits
  11. Reasoning About Programs
  12. Induction
  13. Making Append Vanish: Fast Reverse
  14. Making Append Vanish II: Fast Flatten
  15. Compiler Correctness

Additional material: