Haskell中的结构共享向量



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使用和一些恒定的开销。

最新更新