Functional Programming in Haskell
This page is based off the teachings of Professor Graham Hutton, University of Nottingham. He has approved the creation of this page and usage of his resources.
Last updated
This page is based off the teachings of Professor Graham Hutton, University of Nottingham. He has approved the creation of this page and usage of his resources.
Last updated
This is an advanced course on functional programming in Haskell. It is designed for second year computing students in Nottingham, but the lectures are also made available on .
The course is based on part II of . It is recommended for following the course, to purchase the below textbook, watch the youtube videos, slides are provided below to follow along, and then to try out to programming examples with resources below as well. All resources and links are provided at the bottom of the page. All credit goes to the , University of Nottingham.
The course is based on Part I of Graham Huttonβs textbook Programming in Haskell and introduces foundational topics such as:
Basic syntax and functions
Recursion and higher-order functions
Custom data types and pattern matching
List comprehensions
Lazy evaluation and interactive programs
The full lecture series is available free on YouTube, accompanied by slides and example code.
π
This is your hub. It includes the video lectures, downloadable slides, and example code.
Each lecture builds on the last. Follow the sequence exactly:
Start with Lecture 1 (Course Overview + Demo)
Work through Lectures 2β17, one at a time
Take notes, pause often, and try coding along
π Programming in Haskell (2nd edition) fills in background and provides exercises not covered in the videos.
Use it to:
Reinforce concepts
Get deeper explanations
Practice with written exercises
Experiment with:
Modifying functions
Creating your own recursive patterns
Implementing mini-projects like the Countdown game
Some lectures include hands-on exercises (especially Recursion and IO). Try solving them yourself before checking any solutions.
GHC (Glasgow Haskell Compiler) Install from haskell.org
Editor: Use VS Code with the Haskell extension or any editor that supports Haskell
Hoogle: Use Hoogle to search for functions, types, and documentation
Watch each video at 1x speedβthese are concept-heavy lectures
Type everything manually, even if code is provided
Donβt skip recursion or lazy evaluationβthey're core to Haskell
Use GitHub to track your progress or share your code
Once youβve finished:
Continue to Part II of the textbook (monads, functors, etc.)
Explore other Haskell resources like:
Learn You a Haskell for Great Good
Real World Haskell
Haskell Programming from First Principles
Additional material:
Download the example code (linked on the course site) and run them in your local Haskell environment or an online interpreter like or .
(internal version of this page)
(for all things Haskell)
(the Glasgow Haskell Compiler)
(for searching the libraries)