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
  • Android

To get the free app, enter your email address or mobile phone number.

Introduction to Functional Programming using Haskell (2nd Edition) 2nd Edition

3.2 out of 5 stars 4 customer reviews
ISBN-13: 007-6092032182
ISBN-10: 0134843460
Why is ISBN important?
ISBN
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Sell yours for a Gift Card
We'll buy it for $6.66
Learn More
Trade in now
Have one to sell? Sell on Amazon
Rent On clicking this link, a new layer will be open
$13.46 On clicking this link, a new layer will be open
Buy used On clicking this link, a new layer will be open
$21.05 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$63.46 On clicking this link, a new layer will be open
More Buying Choices
28 New from $59.95 28 Used from $17.15
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


Save Up to 90% on Textbooks Textbooks
$63.46 FREE Shipping. Only 2 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.

Frequently Bought Together

  • Introduction to Functional Programming using Haskell (2nd Edition)
  • +
  • The Haskell School of Expression: Learning Functional Programming through Multimedia
Total price: $116.17
Buy the selected items together

Editorial Reviews

From the Back Cover

After the success of the first edition, Introduction to Functional Programming using Haskell has been thoroughly updated and revised to provide a complete grounding in the principles and techniques of programming with functions. The second edition uses the popular language Haskell to express functional programs. There are new chapters on program optimisation, abstract datatypes in a functional setting, and programming in a monadic style. There are complete new case studies, and many new exercises. As in the first edition, there is an emphasis on the fundamental techniques for reasoning about functional programs, and for deriving them systematically from their specifications. The book is self-contained, assuming no prior knowledge of programming and is suitable as an introductory undergraduate text for first- or second-year students.

About the Author

Bird of Oxford University Computing Laboratory

Kai Bird is the co-author with Martin J. Sherwin of the Pulitzer Prize-winning biography, "American Prometheus: The Triumph and Tragedy of J. Robert Oppenheimer" (2005), which also won the National Book Critics Circle Award for Biography. His other books include "The Chairman: John J. McCloy, the Making of the American Establishment" (1992) and "The Color of Truth: McGeorge Bundy & William Bundy, Brothers in Arms "(1998). Bird's many honors include fellowships from the Guggenheim Foundation, the MacArthur Foundation, the German Marshall Fund, and the Rockefeller Foundation. A contributing editor of "The Nation", he lives in Kathmandu, Nepal, with his wife and son.
NO_CONTENT_IN_FEATURE



Product Details

  • Paperback: 448 pages
  • Publisher: Prentice Hall; 2 edition (May 9, 1998)
  • Language: English
  • ISBN-10: 0134843460
  • ISBN-13: 978-0134843469
  • Product Dimensions: 6.6 x 1.1 x 8.8 inches
  • Shipping Weight: 1.4 pounds (View shipping rates and policies)
  • Average Customer Review: 3.2 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Best Sellers Rank: #1,398,358 in Books (See Top 100 in Books)

Important Information

Ingredients
Example Ingredients

Directions
Example Directions

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

5 star
0%
4 star
25%
3 star
75%
2 star
0%
1 star
0%
See all 4 customer reviews
Share your thoughts with other customers

Top Customer Reviews

Format: Paperback
Bird and Wadler got me started on functional programming. Before that, I'd only seen discussions of C++/STL functors and functions like for, map etcetera.

B&W was dense, and magic. It reminded me of the first time I read the K&R C book, you're following along fine, and all of a sudden you're off the deep end!

The syntax, sort of ML-like adds to the 'magic' feel of it all. Overall I think it's a good book. But like with K&R, make this your second or third book, to ground you in the fundamentals after you've become somewhat familiar with the syntax and application of a particular fnal language.

That said, it covers a wide breadth of topics, and does justice to them as well. But this opinion comes from a newbie at functional programming, so caveat lector!

For me, it made me realise that there was a whole 'new' way of programming, vastly bigger than the few functions C++ had in its STL, and that C++ syntax mostly got in the way. However, perhaps because of this book, I never quite grokked Haskell/ML syntax either, though LISP I find easy (easier).
1 Comment 25 of 30 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
There is a lot of excellent information in this book.

However, it is very dense and the reader should beware that many of the programs in the book don't work. I surmise that they are more intended to show the algorithm rather than the actual Haskell implementation.

In Haskell it is particularly important to pay attention to the details, which is why I give this book only three stars.

Here is an example of a program in the book that does not work.

On page 82 the author Richard Bird provides this sample implementation of the floor function:

floor x = searchFrom 0
where searchFrom = decrease . upper . lower
lower = until (<=x) decrease
upper = until (>x) increase
decrease n = n - 1
increase n = n + 1

The problem with that implementation is that it does not return an Integer value; rather, it returns a decimal (Double) value. Here's an example:

floor (-3.4) -- returns (-4.0)

That is wrong. The specification for floor says that it "maps a value of type Float to a value of type Integer." Clearly it is not producing an Integer result.

I will now explain how to revise floor so that it returns an Integer value.

The heart of the problem is with the until function.

Here is how Richard Bird implements it:

until :: (a -> Bool) -> (a -> a) -> a -> a
until p f y = if p y then y else until p f (f y)

It takes three arguments, p, f, and y. Look at the signature of that function. The type of the third argument, y, dictates the type of the other arguments and the type of the result--whatever type y is, the other arguments must be the same type and the result must be the same type.
Read more ›
Comment 18 of 26 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
The bad: Despite the "introduction" level implied in the title, this is a hard book to read. The book is not a "Haskell book" either. The author uses a mathematical notation that easily translates to Haskell but it's not Haskell per se.

The good: Having said that, the author gives a very good explanation of some of the concepts that make functional programming different from other paradigms. Some of the explanations given in the book are by far better (and more in-depth) than what's found on the web. That's one of the reason is at times hard to read. For example, the section on curring is very good and raises points that I have not seen in other books/articles.
Comment 1 of 1 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
This is a good introduction to functional programming.
It is less language specific than some of the other books.
Comment 10 of 48 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

Set up an Amazon Giveaway

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
Introduction to Functional Programming using Haskell (2nd Edition)
This item: Introduction to Functional Programming using Haskell (2nd Edition)
Price: $63.46
Ships from and sold by Amazon.com