Vector
在Haskell中是否是结构共享的?在Clojure中,修改(不可变)vector
仅需要O(log n)的时间,因为它实际上是一种类似于trie的结构。(http://hypirion.com/musings/understanding-persistent-vector-pt-1)
Haskell中是否有等效的实现?
Vector
在Haskell中是否是结构共享的?在Clojure中,修改(不可变)vector
仅需要O(log n)的时间,因为它实际上是一种类似于trie的结构。(http://hypirion.com/musings/understanding-persistent-vector-pt-1)
Haskell中是否有等效的实现?
Data.Vector
是使用O(n)修改的普通数组。
目前还没有与Clojure的vector相当的等价物。
Data.Sequence
实现为一个指数树,支持比Clojure的vector更广泛的渐进有效操作(O(log(n))连接和分裂,两端的O(1)读/写),但它也是一种更重量级的数据结构,具有更多的RAM使用和一些常量开销。
vector
库是使用数组实现的,具有优化组合向量操作的聪明规则,并提供类似于列表的 API。许多 Haskell 数据结构都建立在不同类型的树上,这是从函数式语言所期望的,但我不知道那个特定的构造。 - jberrymanData.Sequence
,网ه€ن¸؛http://hackage.haskell.org/package/containers-0.2.0.1/docs/Data-Sequence.html
م€‚ - vivian