Immutable vectors are a convenient data structure for functional programming and part of the standard library of modern languages like Clojure and Scala. The common implementation is based on wide trees with a fixed number of children per node, which allows fast indexed lookup and update operations. In this paper we extend the vector data type with a new underlying data structure, Relaxed Radix Balanced Trees (RRB-Trees), and show how this structure allows immutable vector concatenation, insert-at and splits in O(log N) time while maintaining the index, update and iteration speeds of the original vector data structure.
Type
report
Author(s)
Bagwell, Philip
Date Issued
2011
Total of pages
16
Written at
EPFL
EPFL units
Available on Infoscience
October 31, 2011
Use this identifier to reference this record