6 ms·
Terrible book. Please, please read Graham Hutton's Programming in Haskell. LYAH is full of incorrect definitions and broken analogies. Hutton on the other hand
by ilovecaching 8y ago
Terrible book. Please, please read Graham Hutton's Programming in Haskell. LYAH is full of incorrect definitions and broken analogies. Hutton on the other hand is up there with K&R for clear and concise definitions.
- 0xCMP 8y agoYes and there is a newer 2016 version (2007 one came up for me first) https://www.amazon.com/Programming-Haskell-Graham-Hutton-ebook/dp/B01JGMEA3U/ref=pd_sim_351_2?_encoding=UTF8&pd_rd_i=B01JGMEA3U&pd_rd_r=be25fc6b-a57f-11e8-bc7c-f78a6db3930a&pd_rd_w=Jqvo1&pd_rd_wg=l35FA&pf_rd_i=desktop-dp-sims&pf_rd_m=ATVPDKIKX0DER&pf_rd_p=a180fdfb-b54e-4904-85ba-d852197d6c09&pf_rd_r=YYNB8C2D4ZYYW50FPEJV&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&psc=1&refRID=YYNB8C2D4ZYYW50FPEJV https://www.amazon.com/Programming-Haskell-Graham-Hutton-ebo... (no referral link)
- mesarvagya 8y agoThanks just bought it.
- btmiller 8y agoI have to echo this sentiment because LYAH came across as foreign and generally unhelpful. It seems that in educators' pursuits to make CS more accessible to a wider audience, this becomes one example of how not to do it.
- dustingetz 8y agoI loved it!
- sbjs 8y agoAs unfortunate as that may be, I'm glad to hear that maybe it's not that I can't learn Haskell, maybe it's just that I chose the wrong book. So here's to trying again with Hutton's book!
- 3rdAccount 8y agoHaskellBook is also highly recommended
- reificator 8y agoI got LYAH in a Humble Bundle and didn't make it very far before getting bored and dropping it. I've used Rust, SML, and a bit of Scala so I don't feel like it should be that difficult to pick up Haskell. Next time I get the urge, I'll try Hutton's book.
- leshow 8y agoIt probably won't be for you. I was picking up Rust in 2015 and my prior Haskell knowledge (just past beginner at the time), helped immensely. There's a good deal of crossover for the broad concepts.
- reificator 8y agoYeah SML helped a lot while learning Rust for the same reason.
- ahartmetz 8y agoYeah, it tries to be funny but it's just annoying and disorganized.
- gaius 8y agoI felt the same about “Why’s poignant guide”
- anon335dtzbvc 8y ago"LYAH is full of incorrect definitions and broken analogies." Well it's fine for beginners, because beginners want easy explanations and many examples to start with, instead of very precise definitions which requires a precise math vocabulary.
- ilovecaching 8y agoGraham has simple and precise definitions. They're not mutually exclusive properties. No mathematical background or vocabulary is required to read Grahams book. The book is used in introductory computer science courses for undergraduate freshman.
- aye01 8y agoi have never heard of haskell being a language used for teaching introductory computer science courses. that sounds like a nightmare. i'd imagine mid-to-upper div classes.
- thisrod 8y agoIn the mid 90s, first year computer science at the Australian National University used Miranda, the proprietary language from which Haskell was forking at the time. It was great. When I read SICP later, the first half seemed like a long-winded demonstration of obvious ways to use recursion. Didn't everyone know this stuff? Much of the language seemed like magic, but ANU had a culture of throwing students in the deep end to keep us humble about what we knew.
- protomikron 8y agoActually Haskell is excellent for an introduction. The problem with Haskell is that it may be hard hard to get "real stuff done" so to say, i.e. in an industry setting where you have to interact with many external services or libraries (and then miss those specific libraries). If you're learning the basics of Computer Science you usually don't have to do this so Haskell is a great language then.
- ilovecaching 8y ago
- dom96 8y ago> Terrible book. While LYAH may not be ideal, isn't calling it "terrible" a tad too harsh? FWIW I learned Haskell using LYAH and enjoyed it thoroughly. It was my first time learning a language with such a high focus on functional programming, but I think this book did a good job of teaching it.
- wgerard 8y agoSeconding this opinion. Haven't read Graham Hutton's book, but LYAH was just really poorly structured IMO. Some chapters are really basic and easy to read (like the chapter on recursion), and others are insanely dense and thick and basically unintelligible the first time through (like the chapter on functors). We tried reading it for a book club once, and the weeks with the easy chapters there was no discussion to be had and the weeks with the difficult chapters ended up being "did anyone understand any of this?" and trying to figure it out together - which was somewhat helpful, but the book just really ended up being an excuse for us to learn together and not a resource in and of itself.
- samsonradu 8y agoThanks, will give it a shot. I got stuck with the implementation of State monads while reading LYAH probably due to the older code samples (State vs StateT). The explainations were however quite easy to grasp and I believe I assimilated some good general coding practices while reading through.
- aap_ 8y agoAgreed, Hutton's book is really cool. I found LYAH just boring.
- solomatov 8y agoMay be this book isn't ideal, but it explain the most important and complicated things in haskell such as Functors, Monads, Applicatives, etc.
- zZorgz 8y agoI must be out of the loop or this is the first I've seen this (free!) book so widely criticized. I thought it was pretty good for getting me interested in the language. Then again, Hutton's book seems legitimately criticized too for beginners looking at the reviews I'm seeing on Amazon with some preferring or suggesting LYAH as a needed complement. So to each their own.
- jbritton 8y agoPersonally, I found LYAH to be a great book. If there are places where the book is incorrect, I didn't have the background knowledge to notice. I felt the book did a good job explaining applicatives and monads by starting at the very basics and very slowly ramping up the complexity to a complete understanding. I know with many math books I have had a problem where some transformation morphs equation A into equation B and the reader is left wondering how exactly B was obtained. I never felt that way reading LYAH. I could see where somebody already knowledgeable with Haskell would find the micro steps overkill, but it went at the pacing I needed.
- ilovecaching 8y agoHave you read Hutton's book?
- deleted 8y ago[deleted]
- hultner 8y agoI used this book to get introduced to Haskell and think it worked great, it’s also used as the course material in the first programming course for the CS-Program at Chalmers University of Technology (CTH) and have worked as a introduction to programming for hundreds of students every year.
- andrepd 8y agoAgreed. Personally I hate these kinds of books. This style, long-winded "cheery" explanations, constantly "playful", as if I was a small child that couldn't hold my attention for 2 minutes before you had to dangle a colourful toy in front of me. Like they're afraid to be serious for a moment (so many exclamation marks). I'm not here for humour, or to have a pleasant conversation. I'm here to learn. Just give me clear and concise, with minimal fluff. If anyone is familiar with it, Landau and Lifschitz is my kind of book ;) EDIT: I've just skimmed the Hutton book. It looks great! That's what I mean. You don't have to be dense or incomprehensible or dry. Just stick to the point and explain as clear and concise as possible.
- myegorov 8y agoI suspect few physics students would agree with you about the didactic value of LL. The audiences for the two types of books couldn't be more different.
- zinclozenge 8y agoThey're definitely not the books you want for your primary learning source, but as a 2nd source pretty good for sure as long as you're comfortable filling in computation details between equations.
- andrepd 8y agoI learned Mechanics and Fluid Dynamics from Landau ;) It's a challenge to be sure. And it's dense. But actually the fact they tell you the ideas but not necessarily every detail sorta forces you to work things out in paper as you read, which I found very fruitful.
- sriram_sun 8y agoCan be cheery, playful and concise - The Little Schemer was a pleasure to read cover to cover.
- andrepd 8y ago
- sridca 8y agoHutton's book followed by something like https://intermediatehaskell.com/ https://intermediatehaskell.com/ should do the trick.
- creichert 8y ago> Terrible book. Definitely overstated and not good advice for beginners. My advice to beginners would be: - Read all the Haskell books available at your disposal. (In addition to LYAH and the Hutton book, I would say Learning Haskell From First Principles and Get Programming with Haskell are great, https://www.manning.com/books/get-programming-with-haskell https://www.manning.com/books/get-programming-with-haskell, http://haskellbook.com/ http://haskellbook.com/) - When you hit something that doesn't make sense in one source, try referencing it in another source. - When you have some experience writing programs in Haskell, refer to some older books like Real World Haskell. There may be a few issues compiling the examples, but nearly all the techniques in the book are still widely used and you learn about the language has progressed in the last few years. This gives you a compass to read and maintain older Haskell source code). - Read as much Haskell code as you can from popular libraries (Pandoc, XMonad, and smaller libs as well).
- ilovecaching 8y agoBeginners want a clear place to start learning from. All those things you said are overwhelming and unnecessary. Some of your recommendations would be fine as next steps, but to start with, just read Hutton's book. It is small enough to be read in just a few days.
- derefr 8y agoI think there are two different definitions of "beginner" being used here. 1. Someone who has never programmed before, and is perhaps young. Someone who has to be guided. A novice. 2. Someone who is new to this particular language, but is experienced at programming generally; who is attempting to learn the language to use it "in anger" (i.e. with a specific goal in mind and a timeline for that goal); and who is willing to "do whatever it takes" to learn the skill. A journeyman beginning a new path. A novice needs a definitive textbook. A journeyman-beginner, on the other hand, needs definitive primary sources, however scattered. If you're a high-school student learning precalculus, what do you need? A math textbook. If you're a post-graduate student learning some specific arcane sub-discipline of math to see whether it could be used to solve the novel problem you've decided to do your thesis on, what do you need? Primary sources. All the journal papers in that field you can get your hands on. There's no one textbook that could possibly help you; the only truth you will find is the truth "between the lines" of everything you read.
- Kenji 8y agoAgreed. I tried to learn Haskell with this book. I can program basic things in Haskell but this book caused more confusion than anything else.
- davelee 8y agoTerrible opinion.
- h4b4n3r0 8y ago+1. I want a book that walks me through a real, well designed, functional (if you pardon the pun), useful piece of software, end to end. All these FP books are too enamored with language features, instead of showing you how a programmer proficient in the language would solve practical problems in it.