Buy Used
+ £2.80 UK delivery
Used: Good | Details
Condition: Used: Good
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Haskell: The Craft of Functional Programming (International Computer Science Series) Paperback – 16 Mar 1999

2.7 out of 5 stars 3 customer reviews

See all formats and editions Hide other formats and editions
Amazon Price
New from Used from
"Please retry"
£53.91 £0.01

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

  • Apple
  • Android
  • Windows Phone

To get the free app, enter your e-mail address or mobile phone number.

Product details

  • Paperback: 528 pages
  • Publisher: Addison Wesley; 2 edition (16 Mar. 1999)
  • Language: English
  • ISBN-10: 0201342758
  • ISBN-13: 978-0201342758
  • Product Dimensions: 17.3 x 2.8 x 23.6 cm
  • Average Customer Review: 2.7 out of 5 stars  See all reviews (3 customer reviews)
  • Amazon Bestsellers Rank: 758,160 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

From the Back Cover

The Craft of Functional Programming Second Edition
Simon Thompson
The second edition of Haskell- The Craft of Functional Programming is essential reading for beginners to functional programming and newcomers to the Haskell programming language. The emphasis is on the process of crafting programs and the text contains many examples and running case studies, as well as advice on program design, testing, problem solving and how to avoid common pitfalls.
Building on the strengths of the first edition, the book includes many new and improved features-
· Complete coverage of Haskell 98, the standard version of Haskell which will be stable and supported by implementations for years to come.
· An emphasis on software engineering principles, encouraging a disciplined approach to building reusable libraries of software components.
· Detailed coverage of the Hugs interpreter with an appendix covering other implementations.
· A running case study of pictures emphasizes the built-in functions which appear in the standard prelude and libraries. It is also used to give an early preview of some of the more complex language features, such as higher-order functions.
· List comprehensions and the standard functions over lists are covered before recursion.
· Early coverage of polymorphism supporting the `toolkit' approach and encouraging the reuse of built-in functions and types.
· Extensive reference material containing details of further reading in books, journals and on the World Wide Web.
· Accompanying Web Site supporting the book, containing all the program code, further teaching materials and other useful resources.

About the author
Simon Thompson is a Senior Lecturer in the Computing Laboratory at the University of Kent. His research and teaching interests include functional programming and logical aspects of computer science. Simon has written two other books- Miranda- The Craft of Functional Programming and Type Theory and Functional Programming.

About the Author

Simon Thompson is a Senior Lecturer in Computer Science at the University of Kent. His research and teaching interests include functional programming and logical aspects of computer science. 0201342758AB04062001

Inside This Book

(Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

2.7 out of 5 stars
Share your thoughts with other customers

Top Customer Reviews

Format: Paperback
This book was recommended to accompany a university module in Haskell and functional programming which I was having a little difficulty with. Once I read the book, not only did the concepts become clear but I also started to really enjoy functional programming. For my circumstances, it was the perfect book.
Comment 10 of 12 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
I get the feeling that Thompson was pre-occupied when he wrote this book. Concepts which would probably not have been covered by students with little or no programming experience have been glossed over, and at no point is the reader even remotely persuaded that this is a language worth learning. The mere fact that Thompson's book is the only one of its kind on the market does not necessarily make it worth buying. As a reference tool, The Craft of Functional Programming is severely lacking. But what a pretty cover it has...
Comment 7 of 24 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
I hated the book more than I hated Haskell!

My first impression of the book was positive, the chapters looked organised and the language used looked very clear.

However, as the term went on I began using the book less and less as I felt alot of stuff in the book hadn't been explained very well.
Comment 1 of 7 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Helpful Customer Reviews on (beta) HASH(0x980b24c8) out of 5 stars 16 reviews
40 of 41 people found the following review helpful
HASH(0x980bbf0c) out of 5 stars Review from a first-year computer science perspective 19 Mar. 2006
By Ben Carbery - Published on
Format: Paperback
Most of the reviewers for this text so far seem to be more experienced programmers or computer scientists. So I am writing this review to give a different perspective.

My uni has this year chosen Haskell as the INTRODUCTORY language, apparently because it:

1) Is a clear implementation of some fundamental programming concepts

2) Puts everyone on an equal footing, since no-one is likely to have studied it (or even another functional language) before.

I have little formal background but have been messing around with scripting languages like TCL for a couple of years.

The initial transition to thinking from a functional perspective seemed very difficult. The idea of recursion as opposed "just sticking it in a loop" took a while to stick.

But I have found simply by working through the book I have progressed quickly and in only a few weeks it has become quite natural to think in a Haskell way.

I attribute this to the excellent layout of the book, but more importantly the frequent exercises provided throughout each chapter. As my lecturer is fond of saying, practice is the only way to learn programming, and it is by exploring the introduced concepts in this way that I feel my learning of Haskell has been most effective.

The book is paced, if anything, a little slowly. But since I am someone who likes to gain a thorough understanding of topics I don't mind this. The exercises themselves are well thought out and tend to offer an increasing amount of challenge. Something that conceptually seems trivial can be given an interesting twist when it comes to writing a function.

I suppose experienced programmers may have covered similar kinds of exercises in other languages so it may not be quite so interesting, and they will be more wrestling with the mechanics of Haskell than gaining theorertical insights. However this highlights it's usefulness to a beginning programmer.

It has been said that learning a functional language increases your abilities in other languages. Whether this is true for me I haven't discovered yet, but certainly it has given me far more insight than I could have got from a scripting langauge about what is actually happening in a program.

This really is a well-written and surprisingly accessible book considering the typical Haskell programmer. I can highly recommend it.
23 of 25 people found the following review helpful
HASH(0x98840594) out of 5 stars An interesting introduction 17 Jan. 2001
By Doug310 - Published on
Format: Paperback
I read this book as my first book towards learning functional programming and Haskell specifically. With many years of (imperative and object oriented) software engineering behind me, the concept of functional programming was interesting.
The good parts of this book are that it is extremely well organized. It includes many helpful exercises (which I highly recommend) and a very good introduction (the first ten or dozen chapters).
Later on in the book, however, I found increasing difficulty. The author picks up the pace of the material without, in my opinion, justification. By the end, he covers what, from reading several other books and many online articles, I consider the most confusing topic in a single chapter or two. Reading it several times, I'm still uncertain how to build an I/O intensive program in Haskell, and/or what a Monad truly is and/or how exception processing is properly handled.
That notwithstanding (because it seems to be a fairly common complaint of new Haskell students) I quite enjoyed the book. Before you buy it, though, you may wish to consider books from Paul Hudak (a Yale professor and nice guy) and Richard Bird, both of whom have written on Haskell; Paul actually taught a class which I avoided back in the early 90s - too bad, too, because then I wouldn't have to start from scratch so many years later.
26 of 29 people found the following review helpful
By Ronald J. Legere - Published on
Format: Paperback
This was my first text on Haskell, and it certainly got me up to speed on all the essential elements. I prefer Hudaks text for most things, but there is no good reason not to own every Haskell book you can get your hands on. This book is especially strong on learning how to prove things about programs.
It doesnt get to Monads until near the end, but perhaps that is a good thing. It depends on what you want out of a text.
I used this text for self study, and it is well suited to such a task.
21 of 24 people found the following review helpful
HASH(0x980bd2c4) out of 5 stars a dull textbook 14 Jan. 2011
By Benjamin Crowell - Published on
Format: Paperback Verified Purchase
This is a dull university textbook meant to instruct tender young minds in the philosophy of functional programming, and several of the chapters are on topics that are not likely to be of interest to anyone who isn't using the book as the required text for a course. There is insufficient reference material on the built-in functions and the functions in the language's standard prologue for this book to stand on its own.

The author has an annoying habit of using haskell-like pseudocode to explain ideas, without making it clear what is pseudocode and what is real, working code. In addition, the lines of code are interspersed with the text, making it unclear what would constitute a complete, compilable source code file. For example, the discussion of memoization leads off with the standard example of memoizing the naive recursive implementation of the Fibonacci function. First he gives an example of how to memoize it that he clearly marks as not real code that would compile. Then he gives another example that seems to be the one that he is saying would actually compile, but it doesn't compile either. There is no working version of the code on the book's web site, either. After this, he passes on to another example.
10 of 10 people found the following review helpful
HASH(0x980bdaa4) out of 5 stars Good Haskell Book 15 Aug. 2004
By D. Leimbach - Published on
Format: Paperback Verified Purchase
This book, in conjunction with other resources, is a good introduction to Haskell. [...] has a lot of guidance as well.

If you are like me and you are learning Functional Programming after many years of other styles of programming Haskell can be daunting. Books like this explain things from the fundamental levels to more advanced levels. If you read the introduction to the book you will see that it is natural to skip around chapter to chapter when it becomes appropriate to do so. Deciding when it's appropriate is going to depend on your goals. If you want to write full-blown applications in Haskell you may find yourself skipping around much earlier than someone who wants to cover the language completely.

Overall I find this to be a very good book but some of the exercises can be very difficult for someone new to Functional Programming. Almost anything worth doing is not easy though :).
Were these reviews helpful? Let us know