
Amazon Prime Free Trial
FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with FREE Delivery" below the Add to Cart button and confirm your Prime free trial.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited FREE Prime delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
-28% $43.14$43.14
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Good
$38.74$38.74
Ships from: Amazon Sold by: Yosemite Wares

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.
Purely Functional Data Structures
Purchase options and add-ons
- ISBN-100521663504
- ISBN-13978-0521663502
- PublisherCambridge University Press
- Publication dateJune 13, 1999
- LanguageEnglish
- Dimensions6 x 0.58 x 9 inches
- Print length232 pages
Frequently bought together

Customers who viewed this item also viewed
Editorial Reviews
Review
Book Description
Product details
- Publisher : Cambridge University Press (June 13, 1999)
- Language : English
- Paperback : 232 pages
- ISBN-10 : 0521663504
- ISBN-13 : 978-0521663502
- Item Weight : 12 ounces
- Dimensions : 6 x 0.58 x 9 inches
- Best Sellers Rank: #425,952 in Books (See Top 100 in Books)
- #31 in Computer Programming Structured Design
- #149 in Data Modeling & Design (Books)
- #482 in Software Development (Books)
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book useful and interesting for computational scientists. They describe it as a seminal work in the field, with good content and an easy-to-follow style. Readers mention it's worth reading and provides a great view of functional programming.
AI-generated from the text of customer reviews
Select to learn more
Customers find the book's content easy to read and engaging. They appreciate the terse style that packs a lot of information into few words. The book provides detailed explanations and views of data structures that readers would never have considered.
"...Aside from improving you as a programmer, it's just intellectually stimulating to see this elegant ways of expressing the structures, especially if..." Read more
"...applicable to day-to-day work, but it definitely is a worth reading mind-opener; it's fascinating to see efficiency could still be preserved while..." Read more
"...This is a seminal work in the field, and its contents was invaluable and its style easy to read." Read more
"...It is a great challenge to read and gives a great view of data structures you would never have thought of." Read more
Customers find the book useful and interesting for computational scientists. They say it's a seminal work on data structures in functional programming. The concepts can be applied to any functional programming language, and the code is powerful. Readers mention it's the best resource on implementing purely functional data-structures.
"...Aside from improving you as a programmer, it's just intellectually stimulating to see this elegant ways of expressing the structures, especially if..." Read more
"...This book remains the best resource available on implementing performant purely functional versions of well-known data structures -- the kind of..." Read more
"...to see efficiency could still be preserved while being purely functional!" Read more
"...This is a seminal work in the field, and its contents was invaluable and its style easy to read." Read more
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on February 15, 2016Even if you don't plan to do functional programming, it will make you a better programmer to think about recursive / immutable data structures outlined in this book. Aside from improving you as a programmer, it's just intellectually stimulating to see this elegant ways of expressing the structures, especially if you first learned imperative / stateful data structures. This is not an introductory book, however.
- Reviewed in the United States on August 16, 2014Okasaki's book on purely functional data structures is a timeless classic.
Every programmer -- functional or otherwise -- should have a copy at arm's length.
This book remains the best resource available on implementing performant purely functional versions of well-known data structures -- the kind of data structures that everyday programmers need to get their jobs done.
It would be one thing to only aim for coverage of the space, but Okasaki goes much further by demanding that every algorithm he presents be as elegant as possible.
That insistence on elegance really pays off for the reader: the algorithms are easy to understand and easy to implement in the language of your choice.
To the delight of the reader, in many cases, the functional versions of these data structures end up much easier to implement and understand than their more well-known imperative versions.
- Reviewed in the United States on June 24, 2019This book is really good. It discusses its data structures on a level that I'm quite happy with with plenty of detail and discussion about each one.
The only problem I had with the book is the use of standard ML. I know it's a thing of personal preference, but I found standard ML to be much harder to read than Scala or Haskell as is usually used in other books. There IS a Haskell section in the back which I found myself flipping forward to many and it got repetitive. It also hurts the readability since the code in the back is full data structure implementation, not the specific examples highlighted in the chapter.
- Reviewed in the United States on February 5, 2016This is not the kind of book in which you could find techniques applicable to day-to-day work, but it definitely is a worth reading mind-opener; it's fascinating to see efficiency could still be preserved while being purely functional!
- Reviewed in the United States on January 25, 2016I used this book to write a data structure library in a functional language. This is a seminal work in the field, and its contents was invaluable and its style easy to read.
- Reviewed in the United States on January 10, 2014In the pantheon of knowledge there are increasing levels of value; data, information, knowledge and wisdom. Okasaki's "Purely Functional Data Structures" firmly fits into the latter category. The book provides a relatively complete survey of all the academic literature on the topic and presents it in a way that is understandable to an advanced programmer.
If you are an advanced programmer, i.e. you have significant experience with a procedural or OO language and some experience with a functional programming language, then this book may be for you. If you have experienced issues in synchronising access to data structures in multi-threaded environments or ensuring transactional access to complex data, then this book contains the wisdom you seek.
- Reviewed in the United States on June 15, 2020Admittedly this is an odd recommendation especially for a section on computational math. That said, functional programming is a much more natural paradigm in scientific code vs systems code. After I read this book I finally understood how Spark works and have since been able to enjoy reading short and powerful Haskell code for science. An amazing example is Automatic Differentiation in Haskell
- Reviewed in the United States on June 3, 2010Despite the editorial description of the book, the book is really about Standard ML. It happens to have an appendix where source code has been translated -- out of order, and without reference to the text -- into Haskell. This makes it very difficult to read through the book without speaking Standard ML.
The exercises, also, are only SML. Several appear to use idiosyncratic SML features -- I say "appear" because no answers to the exercises, even the basic ones, are provided for me to check my understanding.
Essentially, the content is good, but expect to learn Standard ML to really get the most out of this book.
Top reviews from other countries
-
Philipp MeierReviewed in Germany on December 15, 2014
5.0 out of 5 stars Absolutes Must-Read
Für alle, die in der funktionalen Programmierung zu Hause sind, oder werden wollen, eine Pflichtlektüre. Zugegeben, etwas Neigung zur Theorie ist nötig, aber Okasaki erklärt ausreichend ausführlich. Die Vorgestellten Datenstrukturen sind teils überraschend pfiffig und die Implementierung in ML gut nachvollziehbar.
- PabloReviewed in Canada on October 3, 2016
5.0 out of 5 stars An eye opener. A must for any functional programmer ...
An eye opener. A must for any functional programmer. You just cannot continue using your typical book of algorithms for imperative "mutating" data structures.
- J. D. HarropReviewed in the United Kingdom on January 24, 2009
5.0 out of 5 stars Wonderful
This book is a superb introduction to the subject of purely functional data structures. Many different data structures and implementations of them are described and each is walked through in detail with a thorough description of the advantages and disadvantages. More importantly, this book contains pragmatic advice based upon existing implementations which is invaluable for real programmers.
The only downsides are that some good advice is buried deep in the book and not presented in an overview or executive summary, and the book uses SML rather than OCaml or F#. However, Markus Mottl has translated the code into OCaml.
-
BlackReviewed in France on May 11, 2013
3.0 out of 5 stars Un bon livre
Tous les exemples sont en ML (même s'il y a la traduction de certains en Haskell), donc c'est assez compliqué au début.
Les exemples sont bien traités et raffinés, optimisés, etc.
Ce livre est donc à mi-chemin entre un livre de cuisine, qui fournit les codes "tout fait" (modulo le langage) et un livre de méthodes qui nous apprends à les réaliser.
Dernier point noir, ce sont des algorithmes/problème assez exotiques qui sont traités.
- Alexey FilippovReviewed in the United Kingdom on November 15, 2015
5.0 out of 5 stars A real treasure if you are ready to give it the time it deserves
A detailed, well-paced textbook on functional data structures. Do not make a mistake thinking that it's an introduction book — it's not. It is an extended version of Okasaki's PhD thesis and should be treated as such.
Make sure to get through the exercises: these do hide plenty of insights not available otherwise. A key will not help here: some ideas are better delivered through first-hand experience, and there are no shortcuts.