Ideal for learning or reference, this book explains the five main principles of algorithm design and their implementation in Haskell.