
Ebook Info
- Published: 2016
- Number of pages: 322 pages
- Format: PDF
- File Size: 0.65 MB
- Authors: Graham Hutton
Description
Haskell is a purely functional language that allows programmers to rapidly develop clear, concise, and correct software. The language has grown in popularity in recent years, both in teaching and in industry. This book is based on the author’s experience of teaching Haskell for more than twenty years. All concepts are explained from first principles and no programming experience is required, making this book accessible to a broad spectrum of readers. While Part I focuses on basic concepts, Part II introduces the reader to more advanced topics. This new edition has been extensively updated and expanded to include recent and more advanced features of Haskell, new examples and exercises, selected solutions, and freely downloadable lecture slides and example code. The presentation is clean and simple, while also being fully compliant with the latest version of the language, including recent changes concerning applicative, monadic, foldable, and traversable types.
User’s Reviews
Reviews from Amazon users which were colected at the time this book was published on the website:
⭐I have bought many Haskell books, never know that what this little operator <*> do is simply helping currying. It solves any mystery about applicative functor. Other books may spend many pages and examples in explaining this but still confusing. That’s why this book is thin. Other concepts are equally well explained in this book, but I don’t want to spoil them. Not many exercises, but all of them are very helpful and to the point. GHC changes a bit in these years, Haskell platform is abandoned, check out the -? option and Haskell official pages to see how to install and use them. If you are using win7 you might have a little trouble in installing. Upgrade to win10 or switch to linux.
⭐As someone else in the reviews said, the pedagogical density of this book is amazing. What I mean by that, in 250 pages it goes from a gentle hand holding of the basics of Haskell and then goes on to treat a number of advanced computer science concepts. My first reading through the book was like a tourist in a new country, I looked at the chapters on Monadic Parsing and Compiler Correctness and thought them curious and interesting but didn’t think much. On my second reading of the book, as I was working through another compilers book, I decided to simultaneous write my compiler in Java and Haskell, I was blown away at how powerful a punch the Monadic Parsing chapter packed in it’s mere 15 pages. The author has clearly spent much time and effort in putting this book together to make the exposition simple and clear!To give a better analogy, the first time I read this book quickly and it was like visiting a Karate class that I wanted to join. I saw the different types of forms that existed that one could practice and found them interesting. My second time, I actually joined the Karate class and put in some time and effort to practice the forms and the experience was very rewarding. It exercised and strengthened my (brain) muscles in many new ways and taught me things my body (brain) didn’t think possible before 🙂
⭐It’s hard not to run into Graham Hutton’s work when reading about functional programming, so reading a book on Haskell written by him sounded like a good opportunity to learn from a real expert. It turned out to be a good choice – this is definitely the best Haskell book I read so far.The author’s deep understanding of functional programming concepts and Haskell shines through the writing on many occasions. He carefully sets up explanations and examples that build one on top of another, and manages to explain some of the thorniest ideas of Haskell (applicatives and monads, I’m looking at you) very clearly; most importantly, the why of things is often explained, along with some important historical background that sheds some light on the design choices made by the language.There’s even space in this book for a few extended programming examples and exercises, both of which are very important for a programming book. Some of the exercises come with solutions in an appendix – a truly impressive information density for a ~250 page book.My favorite chapter is Monadic Parsers; parser combinators is a very interesting topic, and I went through several resources that tried to explain it in Haskell. The treatment in this book is much better than anything I read before (it even inspired a blog post to document my understanding).On the flip side, the last two chapters – on automatically proving programs correct, as well as deriving correct programs from definitions – were puzzling. Felt too academic and somewhat out of place in a book teaching a programming language. I suppose that when you write a book, it’s your prerogative to include some of the research topics you’re excited about and pitch them to a more general audience 🙂
⭐Spent a few weeks with the book after work and a docker container with the Haskell image. Lots of fun, and clear examples along with great explanations of how Haskell works and how you the programmer should interact with the language. I also come from a math background so the book and language really speak to me. How can you not love functors!
⭐A very good intro, but confusing because Haskell itself is confusing to run. It took a while for me to get VS Code working with the GHC compiler. And sorting out getting extensions like hlint and hie to work. And then seeing that I had a 20gig of “stack” files. There is a difference between GHC, the compiler, and GHCi, the interactive interface. To compile, you need a “main” function. None of this is discussed in the book, so I had to do much Googling to get anything to work, even the very first examples. Some more help in the book about the actual environment and tools like stack, cabal, etc. would have been good.
⭐I ordered this book in the hope that the code listings in the book would run as is in the Glasgow Haskell Compiler. Two other books on Haskell had code snippets that elicited all sorts of “out of scope” errors which were impossible to interpret and correct leading me to conclude that the code had not been tested against the GHC.. Very frustrating. So far the code has worked and that is a very encouraging sign. Maybe, just maybe, this time it will be possible to learn Haskell in an orderly manner. Here’s hoping. Also, the explanations in the book are very clearly written. The author knows whereof he writes and he avoids being “cute” or making “know-it-all” assumptions. That’s a great relief.
⭐Not the biggest fan of the approach of this one but it’s worth it.
⭐I don’t normally comment unless something is just beyond terrible and I want to go out of my way and let it be known that it sucks, but I must say I am really satisfied with the book. It’s not cut and dry that you will feel bored reading and it not filled with convoluted explanations and poor examples that don’t work. Nor does it assume previous knowledge like most introductory books to a language do, which makes no sense but hey authors can do what they want.This book is really fair, builds up chapter by chapter and doesn’t have you jumping around the book to understand it. Whatever is relevant to a topic will be displayed with that topic.
⭐I have the previous edition, which I gave 4/5 stars for. This version is well worth the 5 out 5 rating for me.The content is expanded and very clear on core concepts. Even if you are a FP using Scala say – get this book.The concise definitions and examples for concepts such as Functor, Applicatives, Monads and where to use, is bar none the best intuitive explanation I’ve come across. I’ve seen so many overblown descriptions of effectual stacks, MTL, etc. etc. this does the basics so you will have the right intuition to carry on and learn more. So for people new to FP, this is the book to have, even if you aren’t a Haskell developer. Can’t recommend this book highly enough.
⭐I’ve been looking at textbooks for the 2nd year university module I will be teaching in the coming year, an introduction to functional programming, and this is the best Haskell-based textbook that I’ve found. Not as detailed as some, it covers the key points concisely, with relevant but not overly-long examples. It might be a bit tricky to follow for someone new to programming as well as being new to the functional programming paradigm, but for my students, with a solid year (at least) of Computer Science studies, it is pitched perfectly.
⭐It is a near perfect mixture of clarity and terseness. Graham’s explanations contain all the information you need to know to understand the various concepts, even if sometimes that’s not immediately obvious. In my opinion there is no easy way around some of the more abstract concepts in Haskell, you just have to keep attacking them till they click. I found myself going back and rereading chapters many times and each time I gained a deeper understanding.It is also vital that you actually write code in Haskell. You simply can’t learn it passively by reading a book no matter how great that book is. For example I wrote a fair amount of code that mapped a function over a structure where I needed to carry some state around to do the mapping. It can be done “by hand” using fold and manually threading the state but it really is tedious. As it’s easy enough to do I kept doing it and it kept being tedious to the point where it annoyed me enough to really try to alleviate it. I went back to the book and this time both Traversables and the State monad finally clicked.
⭐The more I read this book the more I get frustrated. The book is a waste of time and money. Exercises are ridiculous, no explanations. They aren’t even exercises, just examples without explanation.The book introduces types but then keeps giving examples of functions which are not introduced yet… Everything is frustrating in that book.
⭐Amazing book! As a newcomer to Functional Programming, this book really helps to break down the subject into small understandable chunks. The exercises are great at cementing what has been covered in the chapter too.
Keywords
Free Download Programming in Haskell 2nd Edition in PDF format
Programming in Haskell 2nd Edition PDF Free Download
Download Programming in Haskell 2nd Edition 2016 PDF Free
Programming in Haskell 2nd Edition 2016 PDF Free Download
Download Programming in Haskell 2nd Edition PDF
Free Download Ebook Programming in Haskell 2nd Edition
