Introduction to Functional Programming

Graham HuttonSchool of Computer ScienceUniversity of Nottingham

Functional programming is a style of programming in which the primary
method of computation is the application of functions to arguments.
The aim of this course is to review some of the basics of functional
programming, using the modern functional language Haskell. The course
comprises ten mini-lectures, each with exercises, and concludes
with an extended programming example:

Introduction
(what is functional programming,
why is it useful,
this course);

The Hugs system
(what is hugs,
the standard prelude,
function application,
my first script);

The countdown problem
(what is countdown,
rules,
evaluating expressions,
specifying the problem,
brute force implementation,
correctness theorem,
how fast is it,
can we do better,
applying program fusion,
how fast is it now,
can we do better,
exploiting properties,
how fast is it now,
further work).