Goodreads helps you keep track of books you want to read.
Start by marking “Haskell Programming From First Principles” as Want to Read:
Haskell Programming From First Principles
Enlarge cover
Rate this book
Clear rating
Open Preview

Haskell Programming From First Principles

4.43  ·  Rating details ·  167 ratings  ·  33 reviews
I am writing this book because I had a hard time learning Haskell.
It doesn't have to be that way. I've spent the last couple years actively teaching Haskell online and in person. Along the way, I started keeping notes on exercises and methods of teaching specific concepts and techniques in Haskell that eventually turned into my guide for learning haskell. That experience l
ebook, Early Access, 1189 pages
Published 2015 by Gumroad
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Community Reviews

Showing 1-30
4.43  · 
Rating details
 ·  167 ratings  ·  33 reviews

More filters
Sort order
Emre Sevinç
Jan 01, 2017 rated it it was amazing
My relationship with the Haskell programming language, my efforts to learn it had its ups and downs throughout the years. According to my memory and the archives of my blog, my first attempts had been around 2005 – 2006, more than 12 years ago. Back then, apart from a few books written by university professors, and some Wiki-based books, I couldn’t find much high quality material for beginners. Therefore, my efforts didn’t last very long. A few years later, I heard the news about a new book, “Re ...more
Evgeny Dudin
Dec 29, 2016 rated it liked it
Although it covers Haskell and FP in good detail, reading almost every chapter feels quite unsatisfying. The author deliberately does not go into depth or explanation of certain concepts, not showing where the bottom of those concepts are and leaves it for later... Which they scratch the surface of next time.. and then next time... and so on. It constantly makes me feel like I still don't have the full picture. FP is a complicated topic indeed, but reading this book feels like you're being spoon ...more
Jan 12, 2016 marked it as hold
I'm not finished working through this book yet, but it really is phenomenal. The authors fuse theory and practicality in a way I don't think I've seen done so effectively in any other instructional text. A lot of the beauty of this book comes from Haskell itself, syntax reflects conceptual structure, complex ideas follow naturally from simpler ideas, thoughtful approaches make intricate problems much more linear, etc. The thing is, that other educational Haskell texts manage to complicate and co ...more
Eli Sadoff
Dec 28, 2016 rated it it was amazing
This book is the greatest programming book I have ever read, and I've read a lot of them. This book is an excellent guide to learning Haskell. It is intuitive, describes the language incredibly well, and really teaches you the language. I've never before been captivated like this by a programming book. Tip of my hat to the authors.
Aug 16, 2018 rated it really liked it
This book is an amazing work. Its 1300 some pages walk the reader from entering simple expressions into the REPL through all the big concepts that make Haskell scary. There are plenty of examples, lots of code to read and try on your own, and plenty of discussion (sometimes multiple approaches to a single topic!). It is exhaustive, approachable and seems quite free of errors.

So, you ask: "why only 4 stars?" Well, although it is a brilliant book, this is a warning that it may not be the book for
Christian Panadero
Nov 27, 2018 rated it it was amazing
If you are interested on Haskell or in the functional programming paradigm, this is a must read book.
BT Robinson
Nov 06, 2018 rated it really liked it
Shelves: software
This book is a labyrinth presented as a learning path. It has multiple dead ends and frustrating skims over material that made me rage quit. The authors do not expect the reader to understand everything the first time read the book. They do not expect you to finish every exercise (they state this much from the outset). The authors, though, do not state WHICH things they do not expect you to understand the first time or WHICH exercises you won’t be able to complete. Sure, that will vary from read ...more
Tony Poerio
Aug 16, 2016 rated it it was amazing
Not all the way done yet, but neither is this book. The five stars are to encourage others to give it a try, and to let the authors know my appreciation.

Already over 1,000 pages, this book is full of more examples and exercises than you could ever need to understand Haskell. It's extremely comprehensive and excellent.

I've read (and tried to read) a few other books on Haskell, but this one does the best job--by far--of making the material accessible to someone who hasn't already done a Ph.D in
Nov 12, 2016 rated it it was amazing
Shelves: programming
Great, thorough book with excellent exercises. Lots of hands-on stuff and great explanations. Even when reading about stuff I knew, a lot of gaps were filled in. It leaves the learner able to write “real world” programs and not just algorithms and small demo programs.
May 23, 2015 rated it really liked it
As a first draft, it's very impressive - the quality of explanation is high, and except for the (current) latest chapter about datatype, I wouldn't hesitate to recommend it to anyone, even those unfamiliar with the craft of programming.

Now, I want to read everything else !
Ovais Mohammad
Sep 14, 2018 rated it really liked it
- The best thing about the book is it covers enough topics to get one started with programming in Haskell.
- Another really nice thing I liked about it is it builds a decent amount of motivation in most of the topics before actually explaining those topics.
- I liked the coverage of monoids and semigroups before Applicatives and Monads. It felt more natural because, well, Applicatives are Monoidal Functors ;)
- It covers many practical topics like Testing, building projects which I found lacking
Craig Treptow
Aug 14, 2019 rated it it was ok
Shelves: technical, haskell
TL;DR; An unfinished, hard to follow, mess of a book. Use other Haskell books (and learning resources), then come back to this if you feel you need to.

I know that is harsh, but it's how I feel about it today, the day I decided to give up on the book (for now). I made it through about 3/4, so it's not like I didn't give it a chance.

With a tagline of "Think learning Haskell is difficult? It doesn't have to be.", I really wanted to like this book. This is written in a bit of an "academic" style tha
Jun 16, 2018 rated it really liked it
Spectacular beginner-level book on learning Haskell from First Principles; well structured, clear (repeated) definitions and plenty of examples and exercises.

The only reason this didn't get a 5* from me is that I wouldn't consider it a standalone resource (which was probably not its intention), but found it much easier to work through alongside other Functional Programming (FP) resources[1] and possibly a small side project to apply what you're learning as you go.

[1] Co-Author Chris Allen revi
Alain O'Dea
Jan 29, 2017 rated it it was amazing
Excellent, well-paced book that walks through the significant challenge of teaching Haskell without scaring away self-taught programmers or those new to programming entirely. The exercises are a reach from the material, but an appropriate one that cements the lessons of the chapter rather than leaving the reading feeling adrift.

The iterative deepening approach taken by this book has left me with much greater confidence applying Haskell to my work and in reaching up from beginner Haskell into mor
Kevin Bradner
Aug 28, 2019 rated it really liked it
An excellent introduction to the world of functional programming. My only complaints are that the book needs better technical editing in the later chapters (as of August 2019), and is sometimes unnecessarily long winded at times. This book requires patience and bit of familiarity with thinking in formal / mathematical terms.

As far as I know, this is the best and most up to date book on Haskell currently available. It will take readers from zero to a working knowledge of Haskell.
Wenzheng Jiang
Feb 26, 2017 rated it really liked it
I think this book explains the core concepts in Haskell such as Functor, Applicative and Monad very well. I don't feel they are scary anymore after reading the book. So I highly recommend it to anyone who wants to learn functional programming or Haskell. Also I found the was a perfect exercise suite for this book which I highly recommend too.
May 20, 2018 rated it it was amazing
The best programming book I've ever read. Make no mistake, even though the name might make you think this is some brief introductory text, this book is huge and on the 1300 pages covers virtually everything you're gonna need on your way to Enlightenment...I mean, mastering Haskell :). The way is still very long even after reading this book, but it's easier :)
dan pittman
Nov 05, 2017 rated it it was amazing
I actually learned Haskell.

Kind of all of the review needed. But also, its prose is well curated and bubbling with levity. Tonally, it is exactly what I'd want when learning any dense topic "from first principles".
Erik Bäckman
Mar 13, 2019 rated it really liked it
Most likely the best way to learn Haskell. It's a massive book with lots of exercises that focuses on teaching Haskell for understanding. I'd recommend it to anyone wanting to learn not just Haskell but FP in general.
Claudia Doppioslash
Jul 09, 2017 rated it it was amazing
Great intro to Haskell, it leaves nothing unexplained, which is the usual problem with Haskell intro resources. It's big, but if you go through all of it you'll have strong foundations. If it's too much you can still skip around and clarify the topics you most need to.
Erik Bäckman
Mar 13, 2019 rated it really liked it  ·  review of another edition
Most likely the best way to learn Haskell. It's a massive book with lots of exercises that focuses on teaching Haskell for understanding. I'd recommend it to anyone wanting to learn not just Haskell but FP in general.
Jan 19, 2019 rated it it was amazing
The best book you can read if you want to learn and understand Functional Programming from the beginning. This book uses Haskell (which is a pure functional language) to explain every concept of FP, from zero to hero.

You can find the book here:
Florjan Bartol
Dec 22, 2018 rated it it was amazing
Feb 04, 2019 rated it liked it
The exercises don't exactly match the theory and sometimes I feel lost in unnecessary details.
Aisis Zane
Jul 08, 2018 rated it it was amazing
Great for self-starters and it does require self-discipline to finish this. In my opinion, I think it's a worthwhile look.
Jan 01, 2019 rated it really liked it
More like 4.5 stars, hands down one of the best book on haskell. However some chapters are way too long and hope there were more questions to help exercise.
Chee Leong
Jun 18, 2018 rated it it was amazing
Shelves: library, tech
I'd recommend this to whomever wanting to learn Haskell.
Andi Geng
Jan 17, 2019 rated it really liked it
- originally gave it 3 stars, upgraded to 4
- has larger scope than most alternatives
- downside is that (imo) too verbose, to the point where it sacrifices clarity, altho this may be a personal preference
- would recommend Hutton's Haskell book as an alternative/companion to all the chapters before transformers, because I found the exposition much more concise, with this book as a fallback
Marcelo Boeira
Oct 18, 2018 rated it it was amazing
It's interesting, good gradual approach and quite awesome exercises.

My main complain is that each chapter seems to want to explain the previous for too long before actually getting into the content. It works well if you get the book only from time to time, but it gets exhausting over the course of dozens and dozens of chapters...

The second half of the book is more practical and it could a book of itself, with lots "optional" content that if you plan to learn and practice Haskell you'll develop
Sandy Vanderbleek
Feb 10, 2016 rated it really liked it
Impressive in scope, you will learn modern Haskell if you read every page. It is long and will be tedious if you already have significant Haskell exposure, but chapters on Laziness and IO are treats. Great for beginners!
« previous 1 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming
  • Pearls of Functional Algorithm Design
  • Category Theory for Programmers
  • Programming in Haskell
  • Type-Driven Development with Idris
  • Haskell: The Craft of Functional Programming
  • Learn You a Haskell for Great Good!
  • Types and Programming Languages
  • JavaScript Allongé: A strong cup of functions, objects, combinators, and decorators
  • Essentials of Programming Languages
  • Real World Haskell: Code You Can Believe In
  • Thinking Forth
  • Purely Functional Data Structures
  • The Leprechauns of Software Engineering
  • Concepts, Techniques, and Models of Computer Programming
  • Understanding Computation: From Simple Machines to Impossible Programs
  • Functional and Reactive Domain Modeling
  • Erlang and OTP in Action
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »