Functional Programming

Graham Hutton, University of Nottingham


This part of the programming paradigms module focuses on teaching the basic principles of functional programming using Haskell. There are four timetabled lectures and one lab session each week. Which of these will be used for Haskell will be announced in class.


The exam for the module this year is a take-home exam that must be completed in a 24-hour period. Further details are available in the exam guide on moodle.


The Haskell coursework for the module comprises a series of one-page exercise sheets and an extended programming exercise, and will be released on moodle at appropriate points.



      Book 2e Cover


  1. Course overview
  2. Haskell demo
  3. Introduction
  4. First steps
  5. Types and classes
  6. Defining functions
  7. List comprehensions
  8. Recursive functions
  9. Exercises on recursion
  10. Higher-order functions
  11. How to think recursively
  12. Declaring types and classes
  13. The countdown problem
  14. Interactive programming
  15. Exercises on interaction
  16. Lazy evaluation
  17. Course wrapup

Additional material: