Haskell: The Craft of Functional Programming / Edition 2

Paperback (Print)
Buy Used
Buy Used from BN.com
(Save 38%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 96%)
Other sellers (Paperback)
  • All (18) from $1.99   
  • New (2) from $57.60   
  • Used (16) from $1.99   
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
Seller since 2008

Feedback rating:



New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.


Ships from: Chicago, IL

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Seller since 2008

Feedback rating:


Condition: New

Ships from: Chicago, IL

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Sort by


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 an 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 high-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 resuse 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.

Read More Show Less

Editorial Reviews

Christopher Angus

Haskell is over 10 years old now but still relatively few people are even aware of its existence. To the converted few, Haskell offers a powerful solution to problems encountered whilst building software systems. However, many find the learning curve incredibly steep and never get to appreciate its strengths or its advantages.

Haskell: The Craft of Functional Programming is aimed at beginners and coaches the reader in both Haskell and in the rationale behind functional programming in general. As the title suggests, the emphasis of the book is on crafting functional programs and contains many (simple) examples and advice on how to avoid common mistakes when using one of the more popular implementations of Haskell, namely Hugs.

Simon Thompson takes the reader from a point of knowing little or nothing about Haskell and introduces each of its language features in a well-paced chatty manner. It is no surprise that this book and its predecessor (Miranda: The Craft of Functional Programming) have been used as standard texts in many university departments.

However, since this is a beginners book, more advanced techniques such as the monadic style of functional programming (a special kind of use of abstract data structure that allows functional programs to be structured more easily) is unfortunately given a very thin covering (12 pages), suggesting that the interested reader obtain one of the Springer-Verlag lecture notes series.

Alongside this is the fact that often the only way to solve problems is to use libraries that have not made it into the Haskell standard yet. Reading and writing binary files is one example of this. This approach, while being fine for a teaching text, can leave the reader who is trying to solve a real world problems feeling more than a little unsupported.

These points were recently emphasized when Haskell was used (outside the realm of academia) to prototype a language translation system. This system used techniques well known and well understood to the research community but yet to hit the bookstore shelves. This book was successfully used when my colleague joined the project, enabling him to rapidly get up to speed with the language and general concepts. However, there was still a large gulf between this point and the kind of code found in the project.

This situation is perhaps analogous to the gulf between the war-scarred C++ hacker and the programmer who churns out the ubiquitous "hello world." However, walking into any bookstore confirms that the mainstream languages have widespread support and it is relatively easy to obtain a breeze-block sized text on just about any level of Java/C++.

It is perhaps a little unfair to expect The Craft of Functional Programming to be all things to all men since as it excels as an introductory teaching text. Its only real competition being Paul Hudak's The Haskell School of Expression: Learning Functional Programming through Multimedia and it would be nice to see a pragmatic "Haskell used in anger" publication to follow either of these introductions.
Electronic Review of Computer Books

Thompson (U. of Kent) introduces readers to Haskell 98, the primary language of functional programming. He emphasizes the process of crafting programs and provides numerous examples and case studies, as well as advice on program design, testing, and problem solving, and gives detailed coverage of the Hugs interpreter. The book pays particular attention to software engineering principles, such as building reusable libraries of software components, and supports the toolkit approach encouraging the reuse of built-in functions and types. Annotation c. Book News, Inc., Portland, OR (booknews.com)
Read More Show Less

Product Details

  • ISBN-13: 9780201342758
  • Publisher: Addison-Wesley
  • Publication date: 3/29/1999
  • Series: International Computer Science Series
  • Edition description: REV
  • Edition number: 2
  • Pages: 528
  • Product dimensions: 6.80 (w) x 9.30 (h) x 1.10 (d)

Meet 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.

Read More Show Less

Table of Contents

1 Introducing functional programming 3
2 Basic types and simple programs 23
3 Reasoning about programs 73
4 Data structures: lists 89
5 Reasoning about lists 131
6 Generalization 147
7 Functions as values 171
8 Classes in Haskell 203
9 Checking types 221
10 Algebraic types 239
11 Case study: Huffman codes 281
12 Abstract data types 303
13 Lazy programming 345
14 Input/output and interaction 397
15 Program behaviour 425
App. A Functional and imperative programming 451
App. B Further reading 461
App. C Glossary 465
App. D Understanding programs 471
App. E Haskell operators 475
App. F Implementations of Haskell 477
App. G Gofer and Hugs errors 479
App. H Some useful functions 485
Bibliography 491
Index 493
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)