Programming Books C Java PHP Python Learn more Browse Programming Books
Qty:1
  • List Price: $83.99
  • Save: $13.07 (16%)
Only 5 left in stock (more on the way).
Ships from and sold by Amazon.com.
Gift-wrap available.
+ $3.99 shipping
Used: Acceptable | Details
Sold by anybookltduk
Condition: Used: Acceptable
Comment: This is an ex-library book and may have the usual library/used-book markings inside.This book has soft covers. In fair condition, suitable as a study copy.
Access codes and supplements are not guaranteed with used items.
Sell yours for a Gift Card
We'll buy it for $11.85
Learn More
Trade in now
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Introduction to Functional Programming using Haskell (2nd Edition) Paperback – May 9, 1998

ISBN-13: 007-6092032182 ISBN-10: 0134843460 Edition: 2nd

Buy New
Price: $70.92
23 New from $70.69 23 Used from $36.66
Amazon Price New from Used from
Paperback
"Please retry"
$70.92
$70.69 $36.66
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


Frequently Bought Together

Introduction to Functional Programming using Haskell (2nd Edition) + Pearls of Functional Algorithm Design + Purely Functional Data Structures
Price for all three: $160.92

Buy the selected items together
NO_CONTENT_IN_FEATURE

Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now

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 x 8.6 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,600,202 in Books (See Top 100 in Books)

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.


More About the Authors

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

Customer Reviews

3.2 out of 5 stars
5 star
0
4 star
1
3 star
3
2 star
0
1 star
0
See all 4 customer reviews
Share your thoughts with other customers

Most Helpful Customer Reviews

25 of 30 people found the following review helpful By nunb on November 26, 2004
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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
1 of 1 people found the following review helpful By Hector Correa on January 21, 2014
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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
15 of 23 people found the following review helpful By Roger Costello on November 4, 2012
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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
10 of 47 people found the following review helpful By A Customer on November 16, 2002
Format: Paperback
This is a good introduction to functional programming.
It is less language specific than some of the other books.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again