Perhaps you are coming to this book frustrated by previous attempts to learn Haskell.
Perhaps you have only the faintest notion of what Haskell is.
Perhaps you were just looking for the 18 billionth* monad tutorial, certain that this time around you will understand monads once and for all.
Whatever your situation - it is our goal to make Haskell as clear, painless, and practical as we can, no matter what prior experiences you're bringing to the table.
Learning Haskell from the ground up is easier and works better - for both experienced hackers and people new to programming. The language is different enough from any you might've already tried that building up from the foundations will be less difficult and more enjoyable.
If you are an experienced programmer, we encourage you to forget what you might already know about programming and come at this course in Haskell with a beginner's mindset. If you are new to programming, you do not need to know another programming language before you start this book. Even experienced Haskellers have told us that they've found this book enriches their understanding of things they previously took for granted as magic or hadn't much thought about.
So we've done something different from previous Haskell books.
Our approach is based on experience teaching Haskell to many people from a variety of walks of life, and the approach pays off. Spaced repetition and iterative deepening are effective strategies for learning, and we rely on those techniques throughout the book. You may notice we mention something only briefly at first, then return to it over and over. As your experience with Haskell deepens, you have a base from which to move to a deeper level of understanding. By working through exercises and returning to concepts you've seen earlier in the book, you develop a solid intuition for the functional style of programming.
This book is designed to help you get to a place where you could begin applying Haskell to the everyday problems you want to solve. It can also serve as a bootstrap suitable for beginning to learn programming language and type theory. Readers of this book have found that a facility for Haskell can translate into better F#, Scala, or Swift code. This is partly because Haskell pushes you to write the code you should be writing in functional'ish languages anyway.
Download a sample (95 pages)
(includes the introduction, second, and third, and fourth chapters)
(follow us @haskellbook)
one of the best technical books I have read these past few years. @haskellbook has definitelly made me a better programmer, thank you— Adrian Rosian (@whitecitycode) February 9, 2016
After 500 pages into @haskellbook, had to write some Scala today and believe I have suddenly become a much better functional programmer!— Wayne M Adams (@waynemadams) January 21, 2016
Just got my (pre-order) @haskellbook. I'm psyched.— Brody Berg (@brodyberg) January 18, 2016
When someone says: 'I want a programming language in which I need only say what I wish done', give him a @haskellbook.— λ (@PieCalculus) January 27, 2016
Getting @haskellbook is probably one of the smartest decisions I will make in 2016. Highly, highly recommended.— 0xDEAD (@ArturoVM) January 18, 2016