Functional Programming
Level 2 Module FP2
[ 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