2nd Edition. — Cambridge University Press, 2016. — 284 p. — ISBN: 9781316626221
Haskell 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.
Part I Basic ConceptsFirst steps
Types and classes
Defining functions
List comprehensions
Recursive functions
Higher-order functions
Declaring types and classes
The countdown problem
Part II Going FurtherInteractive programming
Unbeatable tic-tac-toe
Monads and more
Monadic parsing
Foldables and friends
Lazy evaluation
Reasoning about programs
Calculating compilers
Appendix A Selected solutions
Appendix B Standard prelude