Enter your mobile number 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.
Getting the download link through email is temporarily not available. Please check back later.

  • Apple
  • Android
  • Windows Phone
  • Android

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

Pearls of Functional Algorithm Design 1st Edition

4.3 out of 5 stars 10 customer reviews
ISBN-13: 978-0521513388
ISBN-10: 0521513383
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.
Trade in your item
Get a $29.57
Gift Card.
Have one to sell? Sell on Amazon
Rent On clicking this link, a new layer will be open
$41.75 On clicking this link, a new layer will be open
Buy used On clicking this link, a new layer will be open
$59.64 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$62.84 On clicking this link, a new layer will be open
More Buying Choices
33 New from $51.78 30 Used from $51.70
Free Two-Day Shipping for College Students with Prime Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


Windows10ForDummiesVideo
Windows 10 For Dummies Video Training
Get up to speed with Windows 10 with this video training course from For Dummies. Learn more.
$62.84 FREE Shipping. Only 7 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.
click to open popover

Frequently Bought Together

  • Pearls of Functional Algorithm Design
  • +
  • Purely Functional Data Structures
  • +
  • An Introduction to Functional Programming Through Lambda Calculus (Dover Books on Mathematics)
Total price: $124.28
Buy the selected items together

Editorial Reviews

Review

"Though the writing is crisp, and the explanations lucid, this is not an easy book to read. The difficulty lies in the density of ideas presented. The rewards of persevering are definitely worth it, though. In fact, once immersed, I started to ponder where this material would lead to: which algorithms could be even further generalized, what would many of these algorithms look like if implemented in Coq or Agda, and so forth. This is the effect that all good books have on me: well-presented and well-motivated material strives to become a stepping stone to further discovery. Any serious computer scientist would benefit from reading and properly understanding this book.
Jacques Carette, Computing Reviews

Book Description

Richard Bird takes a radical approach to algorithm design, namely, design by calculation. This unique collection of 30 programming problems draws from various sources including games and puzzles, sorting, and problems in data compression.
NO_CONTENT_IN_FEATURE
New York Times best sellers
Browse the New York Times best sellers in popular categories like Fiction, Nonfiction, Picture Books and more. See more

Product Details

  • Hardcover: 290 pages
  • Publisher: Cambridge University Press; 1 edition (November 1, 2010)
  • Language: English
  • ISBN-10: 0521513383
  • ISBN-13: 978-0521513388
  • Product Dimensions: 6.8 x 0.7 x 9.7 inches
  • Shipping Weight: 1.6 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (10 customer reviews)
  • Amazon Best Sellers Rank: #513,173 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

Format: Kindle Edition Verified Purchase
While this appears to be an excellent text, the author uses a number of mathematical symbols which are not rendered correctly in the Kindle edition. They are sometimes rendered with a question mark or a rectangular box. This can make the derivations difficult to follow. Since this book is also somewhat expensive for a Kindle edition, if you can afford it, you should probably go for the paper version (assuming the paper version is typeset correctly).
4 Comments 83 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: Hardcover Verified Purchase
Bird has written a fine book, the functional analogue to Bentley's fine pieces. If there is one thing that's common to the functional attitude in program design, it's an emphasis on proof and logical consistency. Bird goes into detail and carefully shows why algorithms perform, and what their costs must be in terms of time and space complexity.
One quibble: the reader, to follow the arguments, will want to write the short code selections for himself, to check Bird's arguments; he'll find himself having to define a number of Unicode mathematical operators, like
U-2209, for example. But this isn't hard to do, in Haskell.
Each chapter is well-written, to the point, and closely argued. In showing the beauty of Haskell in a clear way, or showing the beauty of concrete maths in a clear way, Bird has done well.
Comment 31 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: Hardcover
Each chapter presents a problem, a simple approach to a solution, and then shows how that simple approach can be brought all the way to implementation, using a functional programming style. There are a few things happening in this book. The author's goal to teach you to believe in the morphing properties of functional programming. In effect, he is saying: do not optimize early, express and implement your algorithm sequentially, and you will see that the implementation can be changed (refactored) to meet performance and memory usage needs. To support this mission the book presents and implements a hodgepodge of algorithms, I say hodgepodge because they do not share a common theme. Finally, the book stays within a "first order of complexity" domain: the algorithms stay focused on the problem they are solving, there are no "higher order abstractions" (e.g. monads, arrows).

The lack of algorithmic or higher order theme of this book did bug me. And I would have been tempted to count this against it. Yet not long after having read much of this book, I was working with a list that I knew would no scale, hesitating to refactor it, I was happy leave it unchanged, feeling confident that I would be able to deal with it later. Part of that confidence was supported by the knowledge that that type of transformation is what this book does successfully, chapter after chapter.
Comment 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: Hardcover Verified Purchase
I was one of those people who had learned the fundamentals of algorithms from the Programming Pearls (2nd edition) by Bentley. I have to say that since that text, many has written books about programming and algorithms in general and not one had the stuff to call it "pearl". I think this one came close to achieving the similar goal as the original one, but in the domain of functional programming. For those of you who have not read the original pearls, these books are almost like a collection of publication papers, but very well explained and throughly put into a programming environment. Another most important feature of this book (and the original pearls) is that each chapter is about a single problem that has a unique characteristic in algorithms. While most other algorithms books are organized by data structure types, these ones are focused in the category of problems. I have to say that this is the most intuitive form for people interested in algorithms.

Haskell is a perfect choice of language. However, I don't think this book is just for Haskell programmers. Some of most intriguing problems are covered in very good structure. My favorites are the coverage of saddleback search, last tail, raking suffixes and nexuses. All others topics are really well done, but these were the topics that I had hard time googling for a good explanation. Great work.
Comment 3 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: Hardcover Verified Purchase
I love this book. Just like Jon Bentley's Pearls books, this rather thin book is quite literally a pearl of programming wisdom. Although it's angled to the functional paradigm (Haskell, which is a pleasure as well), it makes for provocative reading given that other languages like C++ and various scripting languages are increasingly including functional programming facilities. This belongs on every computer scientist's (and software engineer's) bookshelf.
Comment 9 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

Pearls of Functional Algorithm Design
Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more about Amazon Giveaway
This item: Pearls of Functional Algorithm Design