Graham HuttonCambridge University PressEdition: 2, 9/1/2016EAN 9781316626221, ISBN10: 1316626229Paperback, 318 pages, 24.6 x 17.4 x 1.7 cmLanguage: EnglishHaskell is a purely functional language that allows programmers to rapidly develop clear, concise, and correct software. The language has grown in popularity in recent years, both in teaching and in industry. This book is based on the author's experience of teaching Haskell for more than twenty years. All concepts are explained from first principles and no programming experience is required, making this book accessible to a broad spectrum of readers. While Part I focuses on basic concepts, Part II introduces the reader to more advanced topics. This new edition has been extensively updated and expanded to include recent and more advanced features of Haskell, new examples and exercises, selected solutions, and freely downloadable lecture slides and example code. The presentation is clean and simple, while also being fully compliant with the latest version of the language, including recent changes concerning applicative, monadic, foldable, and traversable types.ForewordPrefacePart I. Basic Concepts1. Introduction2. First steps3. Types and classes4. Defining functions5. List comprehensions6. Recursive functions7. Higher-order functions8. Declaring types and classes9. The countdown problemPart II. Going Further10. Interactive programming11. Unbeatable tic-tac-toe12. Monads and more13. Monadic parsing14. Foldables and friends15. Lazy evaluation16. Reasoning about programs17. Calculating compilersAppendix A. Selected solutionsAppendix B. Standard preludeBibliographyIndex.