Clojure Gazette 1.18

Sign up for weekly Clojure tips, software design, and a Clojure coding challenge.

Persistent Data Structures.

Clojure Gazette

Issue 1.18 - August 10, 2012


Clojure and Persistent Data Structures?

Anyone who has programmed in Clojure for a time has come to rely on the speedy, persistent data structures available in Clojure. But how do they work?
In this issue, I explore the background of persistent data structures from computer science and how Clojure has innovated in the field and incorporated them.

Have fun!
Eric Normand

PS I love to hear from readers. Just reply to this email to get in touch!
PPS Tell your friends about the Clojure Gazette.

theoretical introduction
Purely Functional Data Structures

Chris Okasaki's PhD thesis on persistent data structures is the best introduction I've read.
What's new in purely functional data structures since Okasaki?

The answer to this Stack Exchange question lists many, many papers describing a wide variety of persistent data structures.
video explanation
Extreme Cleverness: Functional Data Structures in Scala

With great wit, Daniel Spiewak implements many persistent data structures, some of which were invented by Rich Hickey for Clojure. One interesting stat is that for very large amounts of data (greater than 2 billion items), Clojure vecs perform better than java.util.ArrayList for random access.
sponsored link
Consider purchasing a sponsored link in the Clojure Gazette.

The Clojure Gazette reaches the inbox of over one thousand highly educated Clojure enthusiasts each week. The Gazette is also syndicated on Planet Clojure, where it reaches a larger and wider audience. Advertising on the Gazette is the best way to reach the best Clojure programmers.

If you have a high quality product, service, or event, a link to your site and a promotional description may be a good fit. Get in touch and we'll talk.
the inimitable guy steele
Organizing Functional Code for Parallel Execution; or, foldl and foldr Considered Slightly Harmful

Guy Steele shows a better abstraction for persistent lists in today's multicore world.
value and identity
Persistent Data Structures and Managed References

Rich Hickey relates Persistent Data Structures to the idea of value, identity, and concurrency.
from Java

The Clojure data structures, which are implemented in Java, pulled out and disentangled with other Clojure code. This library can easily be imported in any Java application. It could be a great way to use the best of Clojure from within Java.
Clojure Bookshelf

"Books that influenced Clojure, in no particular order".  — Rich Hickey

Must read!
Copyright © 2012 LispCast, All rights reserved.

unsubscribe from this list | update subscription preferences