Hacker News new | ask | show | jobs
by behnamoh 2557 days ago
Thanks for introducing these. But a question I've been asking is what's the optimum way to start learning Haskell? There're tens of books in the links you mentioned, mostly ranging >400 pages. Obviously it's not efficient to read them all and then decide which was the best. On the other hand, with Haskell evolving all the time, I worry if I start a book I might miss out on some other stuff covered in other books.
1 comments

Please start from this book:

Haskell Programming From First Principle (The most popular in community)

https://github.com/allenleein/brains/blob/master/Zen-of-Func...

Thanks! I've heard about the authors. Just out of curiosity, how does Learn You a Haskell for Great Good stack up against other resources? (heard a great deal about it here and there.)
Learn You a Haskell for Great Good ends up being a taste thing for me. I didn't really enjoy it and preferred things that stayed in the pure areas of the language longer and tried to demonstrate more abstract math principles using Haskell as a language rather than CS focused data structures and manipulations (I found a discrete logic preprint book from somewhere that was much more enjoyable). Real World Haskell at the time was then a decent reference to trying to do real things.

I would certainly try it but it works kind of the same as gotour: if you want a worked example of a characteristic of the language for a specific thing it's great, if you are trying to get your hands around the language by working through it 'cover to cover' in a sense I felt like I wasn't achieving the level of understanding I hoped for.

I also saw "Beginning Haskell: A project-based approach" by Mena which even talks about lenses. As my primary use-case from Haskell would be in data science, I think this book might be useful.
LYAH is a good overview of the basics of the language, but it provides little in terms of motivation and exercises. Then again, I learned haskell in it, and it's now my main (non-work) programming language, so it is possible to learn it for great good.