File Size: 1872 KB
Print Length: 712 pages
Simultaneous Device Usage: Unlimited
Publisher: O'Reilly Media; 1 edition (November 15, 2008)
Publication Date: November 14, 2008
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Not Enabled
Best Sellers Rank: #562,073 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #79 in Books > Computers & Technology > Programming > Functional #675 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > Software Design > Software Development #2434 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
The good news is, this is probably the best Haskell book yet. The bad news is, it's still a frustratingly confusing jumble. It starts out well, introducing expressions, type inference, recursion, pattern matching, algebraic types, and higher order functions, with an emphasis on maps and folds (the way real world Haskell code is actually written), and it contains exercises that range from simple to challenging. The first four chapters alone are worth the price.Unfortunately, the problems start in chapter 5, and rarely let up. It starts by introducing a datatype for JSON data for the purpose of pretty-printing it. The way the pretty-printer is rolled out is confusing -- it constantly jumps between code snippets that won't even compile, because a type they depend on is not defined til nearly the end of the chapter. And while it stays away from excessive cleverness, function names are confusingly named. In fact the entire nature of the pretty-printer revolves around a "Doc" abstraction that is never clearly explained or rationalized.Later chapters are also rich with useful information, such as explanations of various GHC language extensions to the type system (which are really de facto standard Haskell nowadays). Unfortunately (there are many "unfortunatelys" to use in this review) I would never have been able to follow these explanations had I not already known a little about them -- unlike the rest of the examples in the book, the examples stop being "real-world" and instead devolve into meaningless metasyntax like "Foo" and "Bar".By the time monads are finally introduced (late, but rightly so -- I consider this delay in introducing them to be a plus), the reader has had to suffer through some very tedious projects, such as parsing an obscure binary format.
This is both a great book, and a horrible book, for learning Haskell. In short, it's well-written, has good structure, and complete examples that enable you to follow along, but it's getting too old.I feel I learned a lot from it, but it took a great deal of effort. Apart from breaks here and there, I started a year ago, and decided to devote one hour every morning to it. I also decide to rigorously type in everything in the book, in order to learn by doing.What's good:The book introduces Haskell without assuming that you know anything about the language. It tells you how to get started, even how you install Haskell on various operating systems, including Windows, Mac OS, and multiple variations of Linux.Whenever there's a code listing, it starts with the name of the file, so if you're typing along, not only does it tell you what to type, but also in which file you should put the code. I found that tremendously helpful.In the first many chapters, the code is introduced in order, which means that it compiles right away. In later chapters, when you see some more 'real-world' examples, the code doesn't compile right away, because it calls functions not yet defined. Sometimes I found myself typing for days before I could get everything to compile, and then I had to go back in order to try to understand what I just spent some hours typing.The entire text of the book is legally available for free online at [...], so I could have simply cut and pasted from the site. Still, I chose to type, because I believe that the act of typing helps me retain what I've learned.The online version of the book includes community contributions in the form of comments, and I found those indispensable.
Real World Haskell: Code You Can Believe In The Psychology of the Masses: Why You Believe What You Believe and Do What You Do 1000 Things People Believe That Aren't True (365 Things People Believe That Aren't True Book 4) Real Estate: Learn to Succeed the First Time: Real Estate Basics, Home Buying, Real Estate Investment & House Flipping (Real Estate income, investing, Rental Property) Learn You a Haskell for Great Good!: A Beginner's Guide Significant Changes to the International Plumbing Code, International Mechanical Code and International Fuel Gas Code, 2012 Edition Haskell: The Craft of Functional Programming (2nd Edition) Schirmer's Vocal Scores of Grand and Light Operas - Cavalleria Rusticana (Rustic Chivalry) Melodrama in One Act - Libretto by G. Targioni - Tozzetti and G. Menasci (Music by Pietro Mascagni - vocal and piano score by L. Mugnone, English Version by Nathan Haskell Dole) HASKELL W. HARR DRUM METHOD BOOK 2 BK/CD FOR BAND & ORCHESTRA Howard Haskell Takes A Bride (The Brides of Paradise Ranch Book 0) The Best Homemade Kids' Lunches on the Planet: Make Lunches Your Kids Will Love with Over 200 Deliciously Nutritious Lunchbox Ideas - Real Simple, Real Ingredients, Real Quick! Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition) Lupus: Real Life, Real Patients, Real Talk You'll See It When You Believe It: The Way to Your Personal Transformation Krav Maga: Real World Solutions to Real World Violence Undoctored: Why Your Doctor Has Failed You and How You Can Discover Real Health On Your Own Ultimate Rice Cooker Recipes : More Than 150 Surprising Recipes You Have to See to Believe Low Carb Dump Meals: 30 Tasty, Easy and Healthy Dump Dinner Recipes You Won't Believe Are Actually Low Carb: Low Carb Dumb Meal Recipes For Weight Loss, Energy and Vibrant Health (Clean Eating) You Won't Believe It's Salt-Free: 125 Healthy Low-Sodium and No-Sodium Recipes Using Flavorful Spice Blends You Will Be Made to Care: The War on Faith, Family, and Your Freedom to Believe