Tech Quarto
Search Advanced SearchView Cart   Checkout   
 Location:  Home » The Internet » Purely Functional Data Structures  
Categories
Computer Science
The Internet
For Dummies
Web Browsers
Windows
Digital Culture
Multimedia
Mobile & Wireless
Visit Laptop Nirvana for the best Cheap Discount Laptops
Bestsellers
Expert F# (Expert's Voice in .Net)
Haskell: The Craft of Functional Programming (2nd Edition) (International Computer Science Series)
Introduction to Functional Programming using Haskell (2nd Edition)
Algorithms: A Functional Programming Approach (International Computer Science Series)
Functional Programming and Input/Output (Distinguished Dissertations in Computer Science)
The Handbook of Programming Languages (HPL): Functional, Concurrent and Logic Programming Languages
Purely Functional Data Structures
The Haskell School of Expression: Learning Functional Programming through Multimedia
ML With Concurrency: Design, Analysis, Implementation, and Application (Monographs in Computer Science)
Applications Of Functional Programming

Purely Functional Data Structures

Purely Functional Data Structures

zoom enlarge 
Author: Chris Okasaki
Publisher: Cambridge University Press
Category: Book

Buy Used: $74.00



Avg. Customer Rating: 4.0 out of 5 stars 5 reviews
Sales Rank: 2267531

Media: Hardcover
Number Of Items: 1
Pages: 230
Shipping Weight (lbs): 1.2
Dimensions (in): 9.3 x 6.3 x 0.7

ISBN: 0521631246
Dewey Decimal Number: 005.73
EAN: 9780521631242
ASIN: 0521631246

Publication Date: April 13, 1998
Availability: Usually ships in 1-2 business days
Shipping: Expedited shipping available
Condition: NO Dust Jacket!!!

Editorial Reviews:

Product 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.

Book Description
Most books on data structures assume an imperative language like 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 and data structure design techniques from the point of view of functional languages. It includes code for a wide assortment both of classical data structures and of data structures developed exclusively for functional languages.This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.


Customer Reviews:

5 out of 5 stars Intro to the functional style and fun algorithmic content   March 28, 2008
 2 out of 2 found this review helpful

If you are beginning to learn functional programming, this is a good book to study. It focuses much on the "no assignment" aspect of the functional style; a good place to start. And does this on one data structure after another allowing it to be easily understood by readers with a procedural background. For the more advanced reader, the algorithmic content of the book is good reading and I find myself picking this book every year or so just to entertain myself. The applicability of the data structures is limited in that most languages come with basic libraries that suffice most of the time.


4 out of 5 stars Strange choice of implementation languages   November 6, 2006
 19 out of 22 found this review helpful

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.



5 out of 5 stars An elegant book   March 30, 2005
 59 out of 60 found this review helpful

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!



4 out of 5 stars Hash Tables are included, briefly.   November 24, 2001
 23 out of 30 found this review helpful

A correction to another review: Hash Tables are included, briefly.


3 out of 5 stars Interesting, but more academic than practical   June 11, 2000
 16 out of 47 found this review helpful

This is the best book available on the implementation of data structures in functional programming languages (e.g. ML, Haskell). Unfortunately, much of the book covers esoteric data structures that will almost never be needed in practice. Hash tables are a major omission, likely because they don't fit well into a functional environment.

Powered by Associate-O-Matic