4 ms·
Started to read through RWH (paperback, not the online version [1]), than read some chapters in LYAH, and now I'm reading Hutton's "Programming in Haskell." The
by giu 16y ago
Started to read through RWH (paperback, not the online version [1]), than read some chapters in LYAH, and now I'm reading Hutton's "Programming in Haskell." The latter, while a slick book (~ 170pages) is really a nice read, but if I have to recommend a book on Haskell, RWH is the one I'll mention for sure; you'll learn a lot about functional programming at large, the book includes a lot of code examples, and it's (mostly) written beginner-friendly.
[1] http://book.realworldhaskell.org/read/ http://book.realworldhaskell.org/read/
- jrockway 16y agoMy favorite part of RWH is how it explains monads. Instead of introducing it as "here's a complex thing with some use cases that you won't understand", it just starts using monad-like structures, but doesn't call them monads. Then you get to the monad chapter, and it says, "oh hey, you know all that code you wrote in the other seven chapters? yeah. monads." Net result? I doubt that anyone who read RWH from the beginning and followed the examples has any trouble with monads. It's things like that that make RWH not just a good Haskell book, but a good programming book.
- giu 16y agoYep, definitely. Generally speaking, the book has a very good structure; everything has its place, and the book makes a very good job in guiding you from the very basics to the more complicated constructs. Moreover, all the constructs are explained very well thanks to the fact that they use quite a lot of code examples to back up explanations in the book, which help you understand everything much better. What I personally (as a novice) have to mention is, that RWH surely is a very good book, but nonetheless you'll start reading some paragraphs or chapters over and over again, especially if you come from the imperative programming branch. Haskell is definitely not easy for a beginner, so prepare yourself to put quite a lot of effort in learning the language and functional programming in general, it's definitely worth it! :)
- jfager 16y agoI really disliked that part, not because it wasn't informative, but because it contradicted the whole point of picking up a book with "Real World" in the title. You don't write pretend monads for pedagogical purposes in the real world, but you do parse binary formats. Why is the chapter that tells you you're learning the latter actually teaching you the former? Which isn't to say I hated the book itself. On the whole it's a great introduction, if you ignore the title and take what's actually there.
- baddox 16y agoI nearly picked up RWH (having previously heard nothing about it) at my school library. Please tell me a little more about why I should read it.
- giu 16y agoAs I mentioned in my parent comment, I didn't finish to read the book yet. Surely, other people (like jrockway) who have completely read the book may give you a better review, but since you asked, here are my 0.02$: Disclaimer: I only worked with imperative programming languages before starting to learn Haskell for great good. The book's written pretty well; the explanations of various constructs introduced either by the language itself or by the functional programming paradigm are written pretty detailed. Moreover, the explanations are accompanied by a lot of code examples, which helps you understanding everything much better. It also has whole chapters dedicated to implement something, like chapter 5, where you'll develop a library for working with JSON data. It's not only theory; you won't be only reading about all the library functions, types, classes, and whatsoever Haskell provides; you'll be using the things you've learned in previous chapters to implement something; you'll learn how to use Haskell in the real world, as some people might say :) If you're not all that convinced, and first want to have a look at some chapters, you can read the book online for free (Brownie point: the comments there are sometimes interesting to read, too): http://book.realworldhaskell.org/read http://book.realworldhaskell.org/read