Talks
Events

Finger Trees Custom Persistent Collections

Chris Houser at Clojure Conj 2010

Clojure's existing persistent collection types cover many usage scenarios, but do leave a few gaps. Finger trees can fill gaps such as sorted sets with efficient support for 'nth', sequential collections that can grow at the front, the back, or even insert values anywhere in the middle, and more. In fact, finger trees can be customized to support a variety of application-specific needs while remaining persistent and playing nicely with Clojure's sequence and collection abstractions. We'll look at examples of using and customizing finger trees, and talk a bit about their internals.