Я шукаю стійку структуру даних, схожу на масив (але незмінний), що дозволяє швидко проводити операції індексації, додавання, додавання та ітерації (хороша локальність).
Clojure забезпечує стійкий вектор, але це лише для швидкого додавання. Вектор Scala має ефективно додавання та додавання в постійному часі, але я не можу зрозуміти, як це реалізовано, оскільки він заснований на тій же структурі даних (бітово-відображене векторне трие), як вектор Clojure, і, наскільки я розумію, біт-відображений вектор трие не може мати швидку наперед без деяких хитрощів.
Мене цікавить не готова до використання реалізація, а опис того, як самостійно реалізувати таку структуру даних.