Synopses & Reviews
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduction is ideal for beginners: it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics. The author is a leading Haskell researcher and instructor, well-known for his teaching skills. The presentation is clear and simple, and benefits from having been refined and class-tested over several years. The result is a text that can be used with courses, or for self-learning. Features include freely accessible Powerpoint slides for each chapter, solutions to exercises and examination questions (with solutions) available to instructors, and a downloadable code that's fully compliant with the latest Haskell release.
Textbook on the functional programming language Haskell.
This introduction is ideal for beginners as it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics.
About the Author
Graham Hutton has worked in four of the leading centres for research and teaching on functional programming, He has more than fifteen years of experience in functional programming research, during which time he has published more than thirty research articles, chaired the Haskell Workshop and edited a special issue on Haskell of the Journal of Functional Programming. He also has more than ten years experience in teaching Haskell, and in promoting the use of functional programming in the curriculum.
Table of Contents
Preface; 1. Introduction; 2. First steps; 3. Types and classes; 4. Defining functions; 5. List comprehensions; 6. Recursive functions; 7. Higher-order functions; 8. Functional parsers; 9. Interactive programs; 10. Declaring types and classes; 11. The countdown problem; 12. Lazy evaluation; 13. Reasoning about programs; Appendix A: a standard prelude; Appendix B: symbol table; Bibliography; Index.