*Introduction to Functional Programming*. 1988, with Philip Wadler- [
*Pearls of Functional Algorithm Design*.] 2010

- Program optimisation, naturally. 2000. (In
*Millennial Perspectives in Computer Science*)

The book emphasises and develops important mathematical techniques for reasoning about programs and for deriving programs from their specifications.

The book 1s self-contained and assumes no prior knowledge of programming. Each chapter contains numerous exercises and Chapter 4 consists of extended case studies from a variety of areas.