Functional Programming

Level 2 Module FP2

Spring 2007

Professor Muffy Calder
Computing Science Department
University of Glasgow

[ Recommended Reading | Archive of Announcements | Web Resources | Programming Assignments | Tutorials | Papers | Haskell Programs | Lecture Slides ]

This is the home page for the Level 2 Functional Programming module.

These web pages will develop as the course progresses; some links may be empty now.

Recommended Reading

The recommended textbook is Haskell, The Craft of Functional Programming, by Simon Thompson. Published by Addison Wesley Longman Limited, 1999. ISBN 0-201-34275-8. I will be using the second edition, but the first edition is equally acceptable as a course text.

 

Archive of Announcements

**No lecture on Wednesday 11 April**

2003 Exam paper

2003 Exam paper sample answers

The web offers lots of information about functional programming, Haskell and related topics. Here are some particularly useful pointers.

  • A helpful page about understanding error messages, by Simon Thompson. You should definitely read this! If you have a mysterious error message, take a look here. It might also be good to skim through the whole page, since it points out a lot of the most common mistakes made in Haskell programs.
  • The home page for the course textbook, Haskell: The Craft of Functional Programming , Second Edition, by Simon Thompson .
  • The Haskell home page is the most complete starting point for information about Haskell. Many of the other pointers in this list are reachable from the Haskell home page.
  • The Hugs home page provides documentation and announcements about Hugs, the interactive implementation of Haskell used in this course.
  • The Haskell 98 Report is the official language reference manual. This is not the best place for learning about the language, but it gives the official language definition including all the details.
  • The Haskell 98 Libraries document defines all the standard built-in functions that you get - this includes map, foldr, and many others. It's a good idea to take a brief look to see what kinds of function are available. In general, it is better to use standard tools than to `reinvent the wheel'.

Programming Assignments

Problem Sheets

Lecture Slides