Discover the Joy of Haskell
There is so much in Haskell to love.
Let us help you discover it all.
Grab your compiler and follow along as the authors develop and gradually refine a short Haskell program. This extremely approachable guide explains topics like case expressions, sum and product types, type constructors, typeclasses, and newtype coercion as they are motivated by the example code, with exercises to reinforce your understanding.
Each of these monographs explores a single topic in great detail, with clear explanations of concepts and a large number of practical examples. Each has been tested and revised, both via our Haskell education web site, Type Classes, as well as through live workshops. Each book starts from a few simple concepts and proceeds to a much more advanced topic by the end of the book. These monographs are oriented for motivated beginners who desire a very hands-on, practical approach, but are also suitable for advanced beginners or intermediate Haskell programmers who want more detailed understanding of the particular topic of the book.
- Finding Success
- In editing
- In progress
The Haskell Desk Reference
- Illustrative examples for Haskell libraries and GHC language extensions.
- Concise, clear explanations of vocabulary.
- A reference manual for things that are easy to forget.
- An opinionated style guide of Haskell usage.
- A choose-your-own-learning-adventure through a forest of functors.
We expect to have an initial release of this book out this year.
Haskell in Context
- What is the logical basis for universal and existential quantification?
- What is an inductive type or a constructive proof?
- Where does the idea of a type class come from?
- What does category theory have to do with any of this, and why do Haskellers insist on using unfamiliar jargon?
Then this will be a book for you! This book will put Haskell in historical context by discussing how some concepts in Haskell developed from advances in logic, mathematics, and computer science. No prior knowledge of those subjects will be assumed.