Pearls of Functional Algorithm Design and over one million other books are available for Amazon Kindle. Learn more
  • List Price: CDN$ 74.95
  • You Save: CDN$ 13.25 (18%)
Only 7 left in stock (more on the way).
Ships from and sold by
Gift-wrap available.
Pearls of Functional Algo... has been added to your Cart
+ CDN$ 6.49 shipping
Used: Very Good | Details
Sold by Neska Booklist
Condition: Used: Very Good
Have one to sell?
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

Pearls of Functional Algorithm Design Hardcover – Nov 1 2010

See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Kindle Edition
"Please retry"
"Please retry"
CDN$ 61.70
CDN$ 56.66 CDN$ 46.00

Frequently Bought Together

Pearls of Functional Algorithm Design + Purely Functional Data Structures
Price For Both: CDN$ 103.26

Buy the selected items together

Product Details

Product Description


"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 radically new 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.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Customer Reviews

There are no customer reviews yet on
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on (beta) 9 reviews
57 of 58 people found the following review helpful
A Warning on the Kindle Edition Feb. 1 2013
By James W. Stelly - Published on
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).
28 of 30 people found the following review helpful
A book for someone who wants to think Nov. 25 2010
By John Wagner - Published on
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.
9 of 9 people found the following review helpful
Good learning but I would have liked more themes to hold it together Aug. 19 2012
By Litsios James - Published on
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.
5 of 6 people found the following review helpful
Required reading for any computing scientist Oct. 16 2011
By Dr. Bruce Watson - Published on
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.
2 of 2 people found the following review helpful
Great book that really helps you become a better programmer. Jan. 3 2013
By Greg Rivera - Published on
Format: Hardcover Verified Purchase
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.