Enter your mobile number or email address below and we'll send you a link to download the free Kindle Reading App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and .

Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and .

Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduction is ideal for beginners: it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics. The author is a leading Haskell researcher and instructor, well-known for his teaching skills. The presentation is clear and simple, and benefits from having been refined and class-tested over several years. The result is a text that can be used with courses, or for self-learning. Features include freely accessible Powerpoint slides for each chapter, solutions to exercises and examination questions (with solutions) available to instructors, and a downloadable code that's fully compliant with the latest Haskell release.

{"currencyCode":"USD","itemData":[{"priceBreaksMAP":null,"buyingPrice":53.4,"ASIN":"0521692695","moqNum":1,"isPreorder":0},{"priceBreaksMAP":null,"buyingPrice":46.41,"ASIN":"0321349806","moqNum":1,"isPreorder":0}],"shippingId":"0521692695::BXMGKAF5HmlqFl%2BRbmbwowqQ0d1PPh4Pl4BQRqY%2FPoxZwERPF2jhwgKSYdVgiwzgSQThsOIuP6fWSS6jiNehPbsWsU%2BTXJ2VBWA7ZGn66S4%3D,0321349806::e1EWqihTOeeJDuR3%2FFauJBrGQUkvgqJsO8C7AnUmkxbLqC8qtEweZ8b1Ii65qd5LQogN82IH5KgkEadduMPxvk0gLcFCydKGwwxWkcont4gVMkjXcuNfQQ%3D%3D","sprites":{"addToWishlist":["wl_one","wl_two","wl_three"],"addToCart":["s_addToCart","s_addBothToCart","s_add3ToCart"],"preorder":["s_preorderThis","s_preorderBoth","s_preorderAll3"]},"shippingDetails":{"xy":"same"},"tags":["x","y","z","w"],"strings":{"addToWishlist":["Add to Wish List","Add both to Wish List","Add all three to Wish List","Add all four to Wish List"],"addToCart":["Add to Cart","Add both to Cart","Add all three to Cart","Add all four to Cart"],"showDetailsDefault":"Show availability and shipping details","shippingError":"An error occurred, please try again","hideDetailsDefault":"Hide availability and shipping details","priceLabel":["Price:","Price for both:","Price for all three:","Price For All Four:"],"preorder":["Pre-order this item","Pre-order both items","Pre-order all three items","Pre-order all four items"]}}

Editorial Reviews

Review

'The best introduction to Haskell available. There are many paths towards becoming comfortable and competent with the language but I think studying this book is the quickest path. I urge readers of this magazine to recommend Programming in Haskell to anyone who has been thinking about learning the language.' Duncan Coutts, Monad Reader

'Two groups of people must consider this book. The first is professors interested in rapidly introducing students to fundamental concepts in functional programming. This book, supplemented with online resources and professorial guidance could easily serve as the textbook for a semester-long course on functional programming. The second group is programmers interested in surveying the functional paradigm as quickly as possible.' Journal of Functional Programming

Book Description

This introduction is ideal for beginners as it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics.

Most Helpful Customer Reviews

Hutton's book is an excellent introduction for programmers approaching Haskell for the first time. Hutton keeps the focus on the core concepts of the language and avoids the advanced topics (of which there are many). The book is fairly light at 171 pages, but for an introductory text I consider this appropriate - a weighty tome might intimidate a reader who just wants a introductory overview. That said, if you are already an intermediate level Haskell hacker, you will likely not find anything of use in this text.

I'm a mathematician who decided Haskell would be a good language in which to perform my latest computing task, so I looked around for learning materials. After going through some web tutorials and starting into _Real World Haskell_, I decided that maybe I should try something more basic and systematic, so I read Hutton's book. I'm glad I did, and I think I understand Haskell much better now than I did before.

The form factor of this book is really odd, essentially that of a thick magazine, like _Wired_. It has huge outer margins, with the text compressed into the middle in tiny-looking 9-point type. Thankfully, the printing is crisp, so the text is fairly readable. Choosing to set the code samples in a proportional font seems like a curious choice, especially for Haskell, where spacing matters. For a computing book, the writing is very elegant, although the organization is somewhat less systematic than I was expecting.

The most questionable aspect of this book is its audience. Ostensibly, it is written for a first university course for students with "[n]o previous programming experience", but I'm not sure how good of a fit it would be, especially for a typical U.S. student. Concepts like pointers, parsers, stacks, and compilers seem to be mentioned with the idea that readers would already know what those are. The examples in the book are largely drawn from Hutton's professional publications in functional programming. To me, these were interesting, but it's not clear how much new students would appreciate them. Contrast that with the fact that mathematical induction is discussed at length as if the reader might be unaware of it, and on page 147 the reader is referred back to a previous derivation for justification of the FOIL formula from basic algebra!Read more ›

Graham Hutton has written a wonderful introduction to functional programming in Haskell. I'm using it as part of an undergraduate level course on programming languages and I'm amazed at how fast my students have understood issues with which previous classes of mine have struggled. In my opinion, this is *the* best introductory text available on functional programming in any language. Thanks Graham!!!

This is a solid start to grasping Haskell. The first 7 chapters are good, detailed and informative with examples and exercises that are helpful and correct. In Chapter 8, the wheels sort of come off the book with text examples that don't work and extremely important information (Monads) that get glossed over with a sentence or two about purity. Unfortunately, when the detailed example in the chapters didn't work I wandered to the solutions that you can download from the site and realized that the part that was glossed over (Monads) are critical to getting the solutions to work. This sort of gap occurs in other places in the book (the Chapter 11 countdown program can't actually work without declaring "Show" instances, etc ...).

Nonetheless, rather than define the book for the gaps, I do feel like it is another solid intro to programming in Haskell but nowhere near enough to send a programmer on their way independently. Coupling the book with one of the other two texts is a good idea (Learn You a Haskell ... or the O'Reilly book).

Graham Hutton's book, along with Thompson's Haskell: The Craft of Functional Programming (3rd Edition International Computer Science Series) are good for people starting off and I think that's why the reviews are so mixed. The books are too easy for most of the people who end up buying them. If you want to learn to program and want to do it Haskell -- which will teach you wonderful good habits -- this is a good choice. If you already know how to program try stepping up. The reviews are right that this book doesn't take you far enough.

I have been a software developer for the past 12 years. However, I had always worked with imperative languages. Learning Haskell is not an easy task. Mostly because it takes time to assimilate the functional paradigm, and secondly because the learning material is not very well organized. It has been practically impossible to learn Haskell using a single book, and I have bought many. However, if I had to recomend a place to start, I would certainly say it is "Programmming in Haskell".

The book covers the very basics that everyone new to Haskell and new to functional programming needs to understand. However, the book does not cover material enough to become a Haskell developer. It just covers enough to get you started with the language, and most importantly, to enable you to understand other Haskell books out ther, which on the contrary, seem to assume that one has a broader understanding on functional programming.

The reason I gave it 4 starts instead of 5 is because it uses a strange symbology in the examples which forces the reader to interpret the symbols when writing Haskell code. You have to read an appendix to interpret symbols as actual Haskell operators.