
Ebook Info
- Published: 2008
- Number of pages: 714 pages
- Format: PDF
- File Size: 5.30 MB
- Authors: Bryan O’Sullivan
Description
This easy-to-use, fast-moving tutorial introduces you to functional programming with Haskell. You’ll learn how to use Haskell in a variety of practical ways, from short scripts to large and demanding applications. Real World Haskell takes you through the basics of functional programming at a brisk pace, and then helps you increase your understanding of Haskell in real-world issues like I/O, performance, dealing with data, concurrency, and more as you move through each chapter. With this book, you will: Understand the differences between procedural and functional programming Learn the features of Haskell, and how to use it to develop useful programs Interact with filesystems, databases, and network services Write solid code with automated tests, code coverage, and error handling Harness the power of multicore systems via concurrent and parallel programming You’ll find plenty of hands-on exercises, along with examples of real Haskell programs that you can modify, compile, and run. Whether or not you’ve used a functional language before, if you want to understand why Haskell is coming into its own as a practical language in so many major organizations, Real World Haskell is the best place to start.
User’s Reviews
Editorial Reviews: About the Author Bryan O’Sullivan is an Irish hacker and writer who likes distributed systems, open source software, and programming languages. He was a member of the initial design team for the Jini network service architecture (subsequently open sourced as Apache River). He has made significant contributions to, and written a book about, the popular Mercurial revision control system. He lives in San Francisco with his wife and sons. Whenever he can, he runs off to climb rocks.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.
Reviews from Amazon users which were colected at the time this book was published on the website:
⭐RWH 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.
⭐Before 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] ->
⭐powerset = filterM (const [True, False])
⭐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.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.
⭐It 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.
⭐After 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.
⭐I bought the Kindle edition of this book having done functional programming with other languages before (Lisp and Scala). The first third or so of this book was material very familiar to me from those other languages and even here I found the book hard work. There were mistakes where the description in the text did not match the sample code. There was an instance of sample code not compiling, and infact the compile error was printed into the book in place of where the program output was expected (maybe this is only present in the Kindle print). Sample code was often too abstract using identifier names that did not help me to understand what the sample code was trying to achieve (ironic for “real world” haskell). In other cases the sample code required functions that would only be implemented much later in the book (very confusing if you are trying out the samples as you read).The next third or so of the book was new territory for me, and here I found myself often second guessing the text of the book. I suspected mistakes but did not have the confidence to know for sure. At this point the online version of the book proved to be very helpful ([…]). Here there are plenty of online comments from readers of the book that correct many of the mistakes and clear up confusion. Take a skim at some of the comments there before you buy to get an indication of the types of problems this book has.I gave up on this book at roughly the two thirds mark, and am now instead reading ”
⭐Programming in Haskell
⭐”. I have yet to complete this alternative book but so far it is of much higher standard than Real World Haskell.
⭐Just working my way through this but it’s such a well written book, it’s a joy to read.
⭐Useful book
⭐This is one of the worst programming language books ever… its almost useless.
Keywords
Free Download Real World Haskell 1st Edition in PDF format
Real World Haskell 1st Edition PDF Free Download
Download Real World Haskell 1st Edition 2008 PDF Free
Real World Haskell 1st Edition 2008 PDF Free Download
Download Real World Haskell 1st Edition PDF
Free Download Ebook Real World Haskell 1st Edition
