Functional Programming

Graham Hutton, University of Nottingham


This part of the programming paradigms course focuses on teaching the basic principles of functional programming using the Haskell language. You'll learn a range of techniques, and see how they can be used in practice to write different kinds of programs.


The Haskell part of the module is assessed by two programming courseworks and one written examination. The courseworks comprise three exercise sheets and an extended programming exercise, and will be released on moodle at the appropriate points during the module.



      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 Wrap Up

Additional material: