Vous voulez voir cette page en français ? Cliquez ici.


or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Purely Functional Data Structures
 
 

Purely Functional Data Structures [Paperback]

Chris Okasaki

List Price: CDN$ 53.95
Price: CDN$ 45.82 & this item ships for FREE with Super Saver Shipping. Details
You Save: CDN$ 8.13 (15%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.ca. Gift-wrap available.
Only 5 left in stock--order soon (more on the way).
Want it delivered Tuesday, May 29? Choose One-Day Shipping at checkout.

Formats

Amazon Price New from Used from
Hardcover --  
Paperback CDN $45.82  

Frequently Bought Together

Customers buy this book with Pearls of Functional Algorithm Design CDN$ 38.21

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

Show availability and shipping details

  • This item: Purely Functional Data Structures

    In Stock.
    Ships from and sold by Amazon.ca.
    This item ships for FREE with Super Saver Shipping. Details

  • Pearls of Functional Algorithm Design

    In Stock.
    Ships from and sold by Amazon.ca.
    This item ships for FREE with Super Saver Shipping. Details


Customers Who Bought This Item Also Bought


Product Details


Product Description

Review

"This book is important because it presents data structures from the point of view of functional languages...a handy reference for professional functional programmers...Most of the programs can easily be adapted to other functional languages. Even C and Java programmers should find implementing these data structures a relatively straightforward process...Programs are physically well structured and readable, and are displayed in boxes. Okasaki has produced a valuable book about functional programming, exploring a wide range of data structures...a significant contribution to the computer science literature." Computing Reviews

Book Description

Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.

Inside This Book (Learn More)
First Sentence
A distinctive property of functional data structures is that they are always persistent-updating a functional data structure does not destroy the existing version, but rather creates a new version that coexists with the old one. Read the first page
Explore More
Concordance
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Tag this product

 (What's this?)
Think of a tag as a keyword or label you consider is strongly related to this product.
Tags will help all customers organize and find favorite items.
Your tags: Add your first tag
 

What Other Items Do Customers Buy After Viewing This Item?


Customer Reviews

There are no customer reviews yet on Amazon.ca
5 star:    (0)
4 star:    (0)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
Share your experience with this product with others
Create your own review
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 4.4 out of 5 stars (10 customer reviews)

101 of 102 people found the following review helpful
5.0 out of 5 stars An elegant book, Mar 30 2005
By Randall Helzerman - Published on Amazon.com
This review is from: Purely Functional Data Structures (Paperback)
Okasaki's slim volume is one of the best expositions on implementing data structures & algorithms in a functional language. After taking an introductory course on functional programming, this would be the book which tells you where to go next.

This book doesn't just present a rehash/rewrite of imperative data structures, only written in a functional language. Instead, Okasaki makes sure to emphasize benefits which only functional programming can bring to the table. For example, many functional data structures can compactly represent not just their current state, but all of their past states as well--a feature called "Persistence". Also, functional newbie programmers might be wondering why lazy vs. strict programming is a big deal, and Okasaki shows clearly where data structures can benefit from either being lazy or being strict.

For the advanced reader, Okasaki also presents several powerful techniques for analyzing the runtime of algorithms, including the so-called "Banker's Method" and the "Physicist's Method" for analyzing amortized algorithms.

I hope that Okasaki comes out with a 2nd edition of this book; there is one missing piece in particular which I really wish he would have included: Although he presents an EXTREMELY lucid description of how to implement Red-Black trees in a functional language, he only presented algorithms for insertion and querying. Of course, deletion from a red-black tree is the hardest part, left here, I suppose, as an exercise to the student. If you want to supply this missing piece yourself, check out a paper by Stefan Kars, "Red-black trees with types", J. Functional Programming 11(4):425-432, July, 2001. It presents deletion routines, but you'll still want to read Okasaki's book first, for unless you're very much smarter than me you won't be able to understand Kars' paper until you read Okasaki's exposition of red black trees.

Finally, this book is not just useful for programmers in functional languages; logic programmers, using prolog or a varient, will also find this book very helpful, because most of the techniques (all of the techniques, really, with the exception perhaps of the lazy programming stuff) can be directly applied in a prolog programming setting as well.

After reading this book and implementing some of the data structures for yourself, you'll be amazed at how fast algorithms can run, even when written in a functional language!

40 of 46 people found the following review helpful
4.0 out of 5 stars Strange choice of implementation languages, Nov 6 2006
By S. Brickner - Published on Amazon.com
This review is from: Purely Functional Data Structures (Paperback)
The description of the book says it includes source code in both ML and Haskell. Unfortunately, the body of the text uses ML exclusively, and the Haskell code is banished to an appendix.

I say "unfortunately", because many of the data structures used depend on lazy evaluation, which comes quite naturally to Haskell, and seems to require some sort of non-standard extension in ML.

While the content is good, I wish it would have used Haskell as the primary exposition language.

28 of 35 people found the following review helpful
4.0 out of 5 stars Hash Tables are included, briefly., Nov 24 2001
By A Customer - Published on Amazon.com
This review is from: Purely Functional Data Structures (Paperback)
A correction to another review: Hash Tables are included, briefly.
 Go to Amazon.com to see all 10 reviews  4.4 out of 5 stars 

Listmania!

Create a Listmania! list

Look for similar items by category


Look for similar items by subject


Feedback


Amazon.ca Privacy Statement Amazon.ca Shipping Information Amazon.ca Returns & Exchanges