Introduction to Functional Programming using Haskell (1998)

by Richard Bird