Re:Unpacking Elixir: Concurrency
by cutler on Friday August 25, 2023 @02:08PM
(#37265080)
Data is also immutable in Clojure but it still has vectors.
[ Parent
| on HN ]
Yeah, but Clojure vectors are actually trees built to be persistent based on ideas from Bagwell's hash array mapped tries (what Clojure maps are), so they're not technically O(1).
Both maps and vectors in Clojure are trees, albeit very shallow trees (32-way branching). The difference lies in the interfaces and the lookup methods. (Maps hash keys and use bits to know which subtree to descend, while vectors use index bits.)