This edition has been extensively updated and expanded, with new chapters covering recent and more advanced features of Haskell, new examples and exercises, and freely downloadable lecture slides and example code. All concepts are explained from first principles and no programming experience is required, making it accessible to a broad range of readers.