Buy new:
$71.99
FREE delivery Friday, May 24
Ships from: Amazon.com
Sold by: Amazon.com
$71.99
FREE Returns
FREE delivery Friday, May 24. Order within 9 hrs 39 mins
Only 1 left in stock (more on the way).
$$71.99 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$71.99
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Sold by
Amazon.com
Returns
30-day easy returns
30-day easy returns
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Returns
30-day easy returns
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Payment
Secure transaction
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$45.00
FREE Returns
Very small dent to top of hardcover front and back, otherwise in pristine condition: pages clean, unmarked; binding tight. Ships directly from Amazon. Very small dent to top of hardcover front and back, otherwise in pristine condition: pages clean, unmarked; binding tight. Ships directly from Amazon. See less
FREE delivery Tuesday, May 28
Only 1 left in stock - order soon.
$$71.99 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$71.99
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Something went wrong. Please try your request again later.

Pearls of Functional Algorithm Design Illustrated Edition

4.4 4.4 out of 5 stars 26 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$71.99","priceAmount":71.99,"currencySymbol":"$","integerValue":"71","decimalSeparator":".","fractionalValue":"99","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"Nrwj3O7%2Bxe0fbRjrH5kYIyq4DAg0MBWQaVQQGWR1SqF4B%2B0w5XjSuvfQMX8oF66ePVi%2Bmio%2Bk6eHdy5fE41dsBOKYFqPp%2FKzfIklf4QPyYc%2BOtcP%2FnJLuafwqWPPKrNloUP%2BBiBiVZc%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$45.00","priceAmount":45.00,"currencySymbol":"$","integerValue":"45","decimalSeparator":".","fractionalValue":"00","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"Nrwj3O7%2Bxe0fbRjrH5kYIyq4DAg0MBWQU0gmf0x77ezG5T3%2FqqRHMZhHsfgmBmH2SqIPNAQtoSXiLyeT94FctZ39G8HuvD0UPB2Tie7SvPJgYTgWBFKyc9q%2FPHC7%2BFAOahuvJL7VtyA5h78rcy0AGPBloLBx2tu8lE6ZNH8MQ7IrYKjo%2FIlvr7QNIBFY9iXO","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

Richard Bird takes a radically new approach to algorithm design, namely, design by calculation. These 30 short chapters each deal with a particular programming problem drawn from sources as diverse as games and puzzles, intriguing combinatorial tasks, and more familiar areas such as data compression and string matching. Each pearl starts with the statement of the problem expressed using the functional programming language Haskell, a powerful yet succinct language for capturing algorithmic ideas clearly and simply. The novel aspect of the book is that each solution is calculated from an initial formulation of the problem in Haskell by appealing to the laws of functional programming. Pearls of Functional Algorithm Design will appeal to the aspiring functional programmer, students and teachers interested in the principles of algorithm design, and anyone seeking to master the techniques of reasoning about programs in an equational style.
Read more Read less

Amazon First Reads | Editors' picks at exclusive prices

Frequently bought together

$71.99
Get it as soon as Friday, May 24
Only 1 left in stock (more on the way).
Ships from and sold by Amazon.com.
+
$59.76
Get it as soon as Friday, May 24
Only 1 left in stock (more on the way).
Ships from and sold by Amazon.com.
+
$56.99
Get it as soon as Friday, May 24
In Stock
Ships from and sold by Amazon.com.
Total price:
To see our price, add these items to your cart.
Details
Added to Cart
Some of these items ship sooner than the others.
Choose items to buy 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

This book takes a radical approach to algorithm design, namely, design by calculation.

Product details

  • Publisher ‏ : ‎ Cambridge University Press; Illustrated edition (November 1, 2010)
  • Language ‏ : ‎ English
  • Hardcover ‏ : ‎ 290 pages
  • ISBN-10 ‏ : ‎ 0521513383
  • ISBN-13 ‏ : ‎ 978-0521513388
  • Item Weight ‏ : ‎ 1.61 pounds
  • Dimensions ‏ : ‎ 7.25 x 0.75 x 10.25 inches
  • Customer Reviews:
    4.4 4.4 out of 5 stars 26 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Richard Bird
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Discover more of the author’s books, see similar authors, read author blogs and more

Customer reviews

4.4 out of 5 stars
4.4 out of 5
26 global ratings

Top reviews from the United States

Reviewed in the United States on May 25, 2015
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.
10 people found this helpful
Report
Reviewed in the United States on November 25, 2010
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.
35 people found this helpful
Report
Reviewed in the United States on October 16, 2011
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.
12 people found this helpful
Report
Reviewed in the United States on February 19, 2017
The book's title is deceptively simple and too inviting for beginners. A better title would be, "Optimizing algorithms with equational reasoning."

In this book, a "pearl" means starting with a brute force algorithm, then incrementally rewriting it into an efficient algorithm. Incrementally improving an algorithm sounds intriguing. In practice, the book just starts swapping out parts of the algorithm, accompanied by long descriptions of why it does not change the function's specification. Rarely does the book give reasoning about why the change is being made. After reading several of these pearls, my thought process does not jive with this style. I suspect the author actually wrote the final efficient algorithm first, then the brute force algorithm, and finally went back and crafted intermediate steps.

The book has many mistakes in it. Some are simply typos that most readers won't notice. Some mistakes invalidate multiple paragraphs in the proofs. Other times the book simply omits important details. For example, I spent an hour deciphering what the "building a tree with minimum height" algorithm did, but I was not convinced that the algorithm worked. I spent 2 days correcting a part of the proof that was wrong and filling in another important part that the book omitted, before I really believed that the algorithm worked.

A published errata could patch up those problems. However, there is no errata on the publisher's website. Nor can I find any way to contact Richard Bird and ask him to start one.

I've only read the first 8 pearls, but so far the problems those algorithms solve are definitely esoteric. Having worked 11 years as a professional developer, I have never come across any of those problems on the job or even as interview questions.

All that said, reading the book is still improving my functional programming.
6 people found this helpful
Report
Reviewed in the United States on January 3, 2013
This book really helped me think about problem solving more efficiently. Functional programming is becoming very powerful and books like this show you why. Thanks to this book, I am now writing shorter and more methodical code. Also great for honing your Haskell skills.
6 people found this helpful
Report
Reviewed in the United States on November 11, 2010
i'm not entirely finished with the "pearls" yet, but so far its interesting and fun. there is a lot of great follow-on discussion for each pearl. a welcome addition to the growing collection of quality texts dealing with haskell and functional programming.
7 people found this helpful
Report
Reviewed in the United States on September 7, 2014
Great book !
2 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Willem Vanhulle
5.0 out of 5 stars Five Stars
Reviewed in the United Kingdom on March 31, 2016
I like the approach of equational reasoning. It's seems natural.
Erwin P.
5.0 out of 5 stars Dieses Buch ist wahrlich eine Perle
Reviewed in Germany on October 16, 2012
Richard Bird hat mit diesem Buch ein wirklich anspruchsvolles und esthetisches Werk hervorgebracht!
Aber ich möchte zu Beginn sagen was man in diesem Buch nicht findet:
- Mit Sicherheit keine Einführung in Haskell
- Kein thematisch sortiertes Buch mit dem man sich die Grundlagen des Designs von
Algorithmen beibringen kann

Was man bekommt:
- Das Buch ist eine Sammlung von Problemstellungen die in einer sehr dichten und anspruchsvollen
Art und Weise gelöst werden
- Ein Buch das einen wirklich zwingt sehr genau über Dinge nachzudenken

Ich kann nur betonen, dass das Buch wirklich nicht trivial ist. Um ein Kapitel, das heisst ein Problem,
durch zuarbeiten nehme ich mir schon mal einen ganzen Tag.
Dies liegt zum einen daran, dass zunächst einmal das Problem zu verstehen ist, dann die zugrunde liegende
Lösung durch den Haskell Algorithmus und zu guter Letzt, meines erachten der schwierigste Teil, die
theoretische Rechtfertigung für die einzelnen Zwischenschritte.
Diese Zwischenschritte werden dargelegt in einer mathematischen Beweisführung, dargelegt in Haskell selbst.

Abschliessend kann ich sagen dieses Buch ist für die Leute die wirklich Spass am Grübeln haben und ein Buch
suchen das sie zum Beispiel abends als anspruchsvolle Alternative zum Fernsehen lesen wollen.
Die Tatsache das jedes der Kapitel unabhängig ist erlaubt es einem nach belieben in dem Buch herum zu
springen oder es auch mal für eine Woche beiseite zu legen.
16 people found this helpful
Report
Jackson Tale
5.0 out of 5 stars Five Stars
Reviewed in the United Kingdom on January 29, 2015
Best functional book. Master have.
Falk Schramm
5.0 out of 5 stars Genau das Richtige um effiziente Algorithmen in Haskell zu schreiben
Reviewed in Germany on December 15, 2013
In dem Buch werden keine trivialien Beispiele, sondern komplexere abgeschlossene Probleme darfestellt und optimiert. Dabei sind die Probleme aus dem "richtigen" Leben genommen und motiviert. Vor der eigentlichen Diskussion werden sie durch eine (ineffiziente) Funktionsdefinition präzise definiert. Anschliessend startet die Diskussion zur Ableitung eines effizienten Algorithmus. Die einzelnen Kapitel sind weitgehend unabhängig voneinander und können je nach Interesse gelesen werden. Das Buch ist sehr lesenswert und gibt sehr schöne Einsichten jenseits der üblichen Einführungsbeispiele in Sprachlehrbüchern. Der Leser sollte sich bereits ein bischen in Haskell ausdrücken. "Pearls of Functional Algorithm Design" ist keine Einführung in Haskell.
4 people found this helpful
Report
stakettratscher
5.0 out of 5 stars super
Reviewed in Germany on January 11, 2014
Der Beschenkte bekam seinen Wunsch erfüllt. Ein gutes Buch zur Häskell Programmiersprache. Er war begeistert, da er ein Häskell-Fan ist