Haskell结构中的Vector
是否共享?在Clojure中,修改(不可变的)vector
只需要O(log n)时间,因为它实际上是一个类似尝试的结构。(http://hypirion.com/musings/understanding-persistent-vector-pt-1)
在Haskell中是否有等价的实现?
Data.Vector
为0 (n)修饰的普通数组。
当时没有与Clojure的vector等价的
Data.Sequence
是作为手指树实现的,它支持比Clojure的向量(O(log(n))连接和分割,O(1)两端读/写)更广泛的渐近高效操作,但它也是一个更重量级的数据结构,具有更多的RAM使用和一些恒定的开销。