Advanced Functional Programming

Graham Hutton, University of Nottingham

Overview

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

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

Textbook


       Book 2e Cover

Lectures

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

Additional material:


Resources