Programming in Haskell This extensively updated and expanded version of the best-selling first edition now covers recent and more advanced features of Haskell. Graham Hutton (Author) 9781316626221, Cambridge University Press Paperback / softback, published 1 September 2016 318 pages, 1 b/w illus. 120 exercises24.6 x 17.4 x 1.7 cm, 0.54 kg Review of previous edition: 'Where this book excels is in the order and style of its exposition … With its ripe selection of examples and its careful clarity of exposition, the book is a welcome addition to the introductory functional programming literature.' Journal of Functional Programming 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. Foreword Preface Part I. Basic Concepts: 1. Introduction 2. First steps 3. Types and classes 4. Defining functions 5. List comprehensions 6. Recursive functions 7. Higher-order functions 8. Declaring types and classes 9. The countdown problem Part II. Going Further: 10. Interactive programming 11. Unbeatable tic-tac-toe 12. Monads and more 13. Monadic parsing 14. Foldables and friends 15. Lazy evaluation 16. Reasoning about programs 17. Calculating compilers Appendix A. Selected solutions Appendix B. Standard prelude Bibliography Index. Subject Areas: Mathematical theory of computation [UYA], Programming & scripting languages: general [UMX], Numerical analysis [PBKS]