Buy New
-21%
$39.47$39.47
FREE delivery Wednesday, July 8
Ships from: Amazon Sold by: Subutay shops
Used - Good
$6.65$6.65
FREE delivery July 13 - 15
Ships from: ThriftBooks-Baltimore Sold by: ThriftBooks-Baltimore
Sorry, there was a problem.
There was an error retrieving your Wish Lists. Please try again.Sorry, there was a problem.
List unavailable.
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
Real World Haskell
Purchase options and add-ons
- ISBN-100596514980
- ISBN-13978-0596514983
- Edition1st
- PublisherO'Reilly Media
- Publication dateDecember 1, 2008
- LanguageEnglish
- Dimensions7 x 1.7 x 9.19 inches
- Print length714 pages
![]() |
Frequently bought together

Customers who viewed this item also viewed
Learn You a Haskell for Great Good!: A Beginner's GuidePaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Wednesday, Jul 8Only 1 left in stock - order soon.
Programming in HaskellPaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Wednesday, Jul 8
Effective Haskell: Solving Real-World Problems with Strongly Typed Functional ProgrammingPaperbackGet it as soon as Thursday, Jul 16
Production Haskell: Succeeding in Industry with HaskellMatt ParsonsHardcoverFREE Shipping by AmazonGet it as soon as Friday, Jul 10
Customers also bought or read
- Effective Haskell: Solving Real-World Problems with Strongly Typed Functional Programming
Paperback$54.53$54.53FREE delivery Jul 16 - 29 - Rust for Rustaceans: Idiomatic Programming for Experienced Developers
Paperback$29.49$29.49Delivery Wed, Jul 8 - Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)
Paperback$45.25$45.25FREE delivery Jul 14 - 16 - Fluent Python: Clear, Concise, and Effective Programming
Paperback$66.99$66.99FREE delivery Wed, Jul 8 - Operating Systems: Three Easy Pieces#1 Best SellerComputer Operating Systems Theory
Paperback$28.27$28.27Delivery Wed, Jul 8 - Design Patterns: Elements of Reusable Object-Oriented Software
Hardcover$25.16$25.16Delivery Jul 19 - 23 - C Programming Language, 2nd Edition#1 Best SellerC Programming Language
Paperback$37.66$37.66$3.99 delivery Jul 13 - 16 - Real World OCaml: Functional Programming for the Masses
Paperback$46.90$46.90FREE delivery Wed, Jul 8 - Developing Web Apps with Haskell and Yesod: Safety-Driven Web Development
Paperback$28.59$28.59$3.99 delivery Jul 20 - 23 - LLVM Code Generation: A deep dive into compiler backend development
Paperback$38.59$38.59FREE delivery Wed, Jul 8 - Common LISP: A Gentle Introduction to Symbolic Computation (Dover Books on Engineering)
Paperback$38.21$38.21FREE delivery Wed, Jul 8
From the brand
-
Your partner in learning
-
Bestsellers
-
Software Development
-
Programming Languages
-
AI / Machine Learning
-
Data Science
-
Data, Databases and more
-
Cloud Services
-
Business
-
Finance
-
Blockchain / Cryptocurrency
-
Security
-
Lean series
-
Cookbooks
-
Head First series
-
97 Things series
-
Sharing the knowledge of experts
O'Reilly's mission is to change the world by sharing the knowledge of innovators. For over 40 years, we've inspired companies and individuals to do new things (and do them better) by providing the skills and understanding that are necessary for success.
Our customers are hungry to build the innovations that propel the world forward. And we help them do just that.
Editorial Reviews
About the Author
John Goerzen is an American hacker and author. He has written a number of real-world Haskell libraries and applications, including the HDBC database interface, the ConfigFile configuration file interface, a podcast downloader, and various other libraries relating to networks, parsing, logging, and POSIX code. John has been a developer for the Debian GNU/Linux operating system project for over 10 years and maintains numerous Haskell libraries and code for Debian. He also served as President of Software in the Public Interest, Inc., the legal parent organization of Debian. John lives in rural Kansas with his wife and son, where he enjoys photography and geocaching.
Don Stewart is an Australian hacker based in Portland, Oregon. Don has been involved in a diverse range of Haskell projects, including practical libraries, such as Data.ByteString and Data.Binary, as well as applying the Haskell philosophy to real-world applications including compilers, linkers, text editors, network servers, and systems software. His recent work has focused on optimizing Haskell for high-performance scenarios, using techniques from term rewriting.
Product details
- Publisher : O'Reilly Media
- Publication date : December 1, 2008
- Edition : 1st
- Language : English
- Print length : 714 pages
- ISBN-10 : 0596514980
- ISBN-13 : 978-0596514983
- Item Weight : 2.02 pounds
- Dimensions : 7 x 1.7 x 9.19 inches
- Best Sellers Rank: #681,046 in Books (See Top 100 in Books)
- #37 in Functional Software Programming
- #414 in Microsoft Programming (Books)
- #425 in Software Design & Engineering
- Customer Reviews:
About the authors

Discover more of the author’s books, see similar authors, read book recommendations and more.

Discover more of the author’s books, see similar authors, read book recommendations and more.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
- 5 out of 5 stars
How to enjoy this book:
Reviewed in the United States on March 28, 2016It is not the easiest language to learn. i recommend learning some other programming languages. Maybe python basics. Then maybe something higher level like C or C++ if you insist, or maybe Java. If your already an experienced programmer you may have the same experience as me. I found Haskell to be really interesting and a unique fun approach to solving issues. But keep in mind this is a functional language and object oriented programming is absent in this language. As a book i feel like its a good run though of how to program in Haskell. It provides interesting examples in it as well as being able to make a QR code scanner. If you read this book don't just skim though it. You will need to probably practise the examples multiple times and experiment a little. But if your paying attention and thinking about what they are saying in the book you should get the hang of it.
5 people found this helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again - 5 out of 5 stars
A life-changer
Reviewed in the United States on December 15, 2008The book is a must-read for not only people who would specifically like to learn Haskell, but for any programmer who is open to new ways of thinking about computing.
It serves at least those purposes:
- Makes one an overall better programmer by teaching to think about problems in a functional mindset, thus teaching modularity and abstraction (because functional programs tend to be modular and abstract 'by construction')
- By introducing some of Haskell's extremely powerful libraries, such as STM and QuickCheck, motivates to search for equally unbelievably beautiful design decisions in casual programming
- Teaches one to program useful, reliable, fast, concurrent, tested, and-so-on real-world applications in Haskell
I beleive that the book will play a seminal role in popularization of functional programming, and, consequently, in increasing the number of good programmers and good code in the world :)
8 people found this helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again - 4 out of 5 stars
Good for a first draft and especially for a Functional Programming book
Reviewed in the United States on May 1, 2009RWH is a solid book that gives the read a good idea of how Haskell works and why its unique. The book has its fault, largely because its a first draft that tries to cover a LOT of material. Don Stewart however has actively tried to aid in any deficiencies found by fixing errors on the web-version of this book so I'm not bothered by errors or things left out in the book.
The biggest complaint people have is that it tends to introduce concepts without really ever mentioning why something is being done. On one hand I agree with that assessment, however I also think that the book was marketed somewhat improperly. I would not call this book a good book for a beginner or your average intermediate programmer. At the very least I would say this book is better suited for experienced programmers or intermediate programmers with a passion for learning about languages.
That said, of the Functional Programming books I own, this is one of the best and most practical. It does not require a doctorate in Denotational Semantics to understand and it does not burn the first half of the book on typed/untyped lambda calculi (not that these things aren't important).
In short, if you want to get down to business working with a functional language, you have some experience with programming and are comfortable with a few errors then this book is for you.
12 people found this helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again - 5 out of 5 stars
Excellent, paradigm shifting book
Reviewed in the United States on January 5, 2009Before purchasing RWH, I had already read the whole book on its website in beta form. Even though I have a decent amount of haskell experience, I was very very pleased with this book. So much so, that I bought the hard copy to have as a reference and because part of me felt like I owed to the authors. I should also note that the authors are often in #haskell and each of them have been extremely helpful to me in the past.
The authors do a great job of explaining the value of taking on the challenge of coding in a pure, functional language. As clock speeds stagnate and the number of cores available to programmers increases, this will only become truer with time. As the authors demonstrate, Haskell is uniquely positioned to take advantage of this new paradigm. The other paradigm shift is that this is the first major book (AFAIK) to address Haskell from a practical as opposed to academic perspective. It does so with shining colors.
I can't recommend RWH strongly enough for anyone considering Haskell. As a last note, even if you can't conceive of a single time that you will ever need to use Haskell, learn it anyway. It will blow your mind. Check the canonical powerset of a list function below if you still need convincing:
powerset :: [a] -> [[a]]
powerset = filterM (const [True, False])
9 people found this helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again - 5 out of 5 stars
An extremely good book for learning haskell
Reviewed in the United States on March 8, 2014I've tried to learn Haskell for two years now, every time giving up and trying again after a few monts. With this book I finally felt I learned it. It is a great book, mostly for the abundance of examples of fully developed projects. I still think they could have included the full code of every example, but it deserves five stars only for having brought me to the point where I can consider doing my own project in this wonderful language.
BTW the book is free online, but I like having my dead-tree copy.
One person found this helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again - 3 out of 5 stars
This is both a great book, and a horrible book
Reviewed in the United States on June 7, 2016This 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.
What's bad:
First of all, the book is from 2008, and while that doesn't sound that terrible, unfortunately it predates some breaking changes that were added to Haskell since it was published. In general, I was able to handle the problems that arise from those breaking changes, often because someone had already blazed the trail before me. I found a few answers on Stack Overflow, but in general, most help was already available in the comments to the online version of the book.
One or two chapters are so severely impacted by the breaking changes that I gave up on making the code compile, but in most cases, I managed. Often, it was difficult, and I was stuck for days, but I also believe that I learn something valuable about the language from having to troubleshoot old code.
There's a good answer on Stack Overflow on [...]4 that summarises which parts of the book are obsolete, and which parts are still good.
Another, unrelated, problem with the books is that the exercises are often ambiguous or just formidable. A few of them, I could solve in a couple of minutes; some of them, I spent weeks on; and some I simply gave up on.
Summary:
I learned a lot from this book, but it was also because I was willing to put serious work into it. For that reason, I consider my efforts worthwhile, but I'd probably not recommend this book to someone interested in an introduction to Haskell today. Too bad, because it's the only Haskell book I've read so far, so I don't know of an alternative to suggest.
36 people found this helpfulSending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again - 5 out of 5 stars
Awesome beach reading!
Reviewed in the United States on May 29, 2014The book is a perfect introduction to Haskell for people who already know a bit of programming. There are practical examples of useful projects done in Haskell, and the author seems to have a great knowledge of the underlying language which he manages to pass down to the readers.
Sending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again - 4 out of 5 stars
Lots of info, but kinda arbitrary
Reviewed in the United States on January 19, 2014Real World Haskell will show you a lot of tricks and good practices. I bought the book because of this and I'm not disappointed. I'm giving it a four because I miss a few topics, and the examples are sometimes not very "real world". Still a good book though.
Sending feedback...Sending feedback...HelpfulThank you for your feedback.Sorry, we failed to record your vote. Please try againThanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again
Top reviews from other countries
tommaso5 out of 5 starswow!
Reviewed in Italy on February 27, 2025wow! many years ago I wrote my thesis on ML type system and its extensions possibilities, and now that I'm sixty this book is really a joy.
Haskell represents the legacy of ML philosophy and this book makes it available to everyone with clarity and freshness. I strongly advice it even if you will continue to program in c javascript php etc.
haskell helps you to think in a new clear way!
Sending feedback...Thanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again
Avid Reader5 out of 5 starsExcellent book to get you into Haskell
Reviewed in the United Kingdom on December 14, 2016After a lifetime of programming in declarative languages like C, C++ and Java, I find it difficult to switch into the functional programming mindset. I suspect this is more to do with my age than anything else. I’m particularly interested in how to build systems that effectively make use of modern multi-core computers, assuming that we’ll soon have computers with hundreds of cores. In spite of what some experts say, I have grave doubts about our ability to reliably build such systems in the likes of Java; yes, there will some people who will be able to do it, but how will the common or garden developer do it?
Enter functional programming. Erlang has the ability to succeed with multi-cores, though I have my doubts about its efficiency; it’s great for network-heavy applications, but is it quite so great for compute-intensive apps? I’m not convinced yet that functional programming (Erlang excepted) has the ability *right now* to build hugely scalable multi-core apps - but I think the potential is there, and any developer putting the effort into becoming proficient at functional programming may be hugely rewarded in the future.
Given this hypothesis, how to go about it? Haskell has a reputation of being an extremely pure functional language. It also has a reputation of being very hard to learn. This is where “Real World Haskell” comes in. If you study this book right to the end, you’ll have made the mindset switch. Be warned though, it has 650 pages and is heavy going. Not because it’s badly written; on the contrary, it’s written very well. It’s because there’s a huge amount of technical stuff to put over. Recursion, folds, partial functions, lambda functions, typeclasses, and monads anyone? (Write programs using recursion in Java etc, and get used to stack overflows; not the best way to write highly stable apps).
Back in the 1990s I went through another mindset switch - from procedural thinking to object thinking. I’m finding this one harder. After studying a couple of hundred pages, and having studied Erlang previously, I began to experience the mindset switch. Unfortunately it was fragile, one minute I was thinking functionally and the next back to declarative. The real world intervened though, and I had to stop the study; so I slid back to declarative thinking. Real soon now I’m going to take another run at it. Of all the Haskell books, this is the one I’ll use. I’ve found others either too simple or too academic; for me, this book is just right.
Sending feedback...Thanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again
Justin Hanekom5 out of 5 starsFive Stars
Reviewed in Canada on July 24, 2014I love this computer language and I love this book. Well done!
Sending feedback...Thanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again
GB5 out of 5 starsNot an easy read, but definitely brilliant and worth studying
Reviewed in Germany on May 16, 2014Having a background in science, with this book I felt the way I used to feel with college textbooks back in my student days - you're happy if you can digest a page or two in a day. But once you understood the stuff, the knowledge becomes a part of your internal thinking and reasoning.
Chapter 10 with its ad-hoc monadic parser is ``a newbie killer''. The discussions of parseByte on the website with the text of the book helps. Reading on the state monad helps to understand the chapter too.
Sending feedback...Thanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again
punter5 out of 5 starsComprehensive, clear, convenient
Reviewed in France on July 9, 2015Out of several Haskell textbooks on my bookshelf (pretty much all you can find on Amazon & internet bar Bird's books), this is the one I refer to most often and quickly find an answer.
You may need other Haskell books too but you can't go wrong with this one.
Sending feedback...Thanks, we'll investigate in the next few days.Sorry, We failed to report this review. Please try again






















