Understanding Clojure's Persistent Vectors, pt. 1 (2013)

https://hypirion.com/musings/understanding-persistent-vector-pt-1

Article

  • Deep dive into Clojure’s persistent vector: a tree-based immutable data structure
  • Explains structural sharing enabling O(log n) updates without copying
  • Part 1 of a series; author later implemented RRB-trees in C

Discussion

  • Commenter noted author went on to implement RRB-trees (fast insert/delete/merge variant)
  • CHAMP (improved HAMT by Steindorfer) mentioned as further advancement
  • Scala has a similar structure; immutability noted as core to Clojure’s concurrency model
  • Request for analysis through the lens of cache locality for modern hardware

Discuss on HN


Type Link
Added Apr 15, 2026
Modified Apr 15, 2026