Immutable Collections
Вставка
- Опубліковано 28 сер 2024
- Paul Sandoz, Software Engineer, Oracle
This session discusses immutable collections, specifically those called persistent collections, commonly used in JVM languages such as Scala and Clojure and more recently introduced in the Java functional library vavr. The presentation explains the fundamental structure of persistent collections, analyzes their pros and cons, and assesses their performance. It also evaluates persistent collections to see how they might integrate with existing APIs in the Java platform. At the end of the session, you should have a good idea of how persistent collections work and whether they are a good solution for your needs.
Putting the builder in the closure is a GREAT IDEA! I haven't seen that before. Brilliant!
Great talk - thank you! Phil Bagwell (with Tiark Rompf) pioneered the RRB-Tree as an improvement on Rich Hickey's PersistentVector from Clojure and reference Rich's work in their paper: infoscience.epfl.ch/record/169879/files/RMTrees.pdf
I think Rich's HashMap implementation in Clojure is still unbeaten in every respect. Rich's TreeMap I think was taken from Okasaki's Purely Functional Data Structures. www.cs.cmu.edu/~rwh/theses/okasaki.pdf
So I think Okasaki was first, Rich Hickey second, and Bagwell was third. Not sure who came before Okasaki. Rich provided the first highly performant JVM implementations of Hash/Tree Map/Set and Vector. Bagwell/Rompf proposed a vector improvement which is much more complicated and better in some circumstances and worse in others.