hackage.haskell.org : persistent-vector
This package provides persistent vectors based on array mapped tries. The implementation is based on the persistent vectors used in clojure, but in a Haskell-style API. The API is modeled after Data.Sequence from the containers library. Technically, the element-wise operations are O(log(n)), but the underlying tree cannot be more than 7 or 8 levels deep so this is effectively constant time. One change from the clojure implementation is that this version supports O(1) slicing, though it does cheat a little. Slices retain references to elements that cannot be indexed. These extra references (and the space they occupy) can be reclaimed by shrinking the slice. This seems like a reasonable tradeoff, and, I believe, mirrors the behavior of the vector library. Highlights: O(1) append element, indexing, updates, length, and slicing Reasonably compact representation
Registry
-
Source
- JSON
purl: pkg:hackage/persistent-vector
Keywords:
bsd3
, data
, library
, Propose Tags
License: BSD-3-Clause
Latest release: over 4 years ago
First release: almost 13 years ago
Dependent packages: 1
Downloads: 3,615 total
Stars: 27 on GitHub
Forks: 4 on GitHub
See more repository details: repos.ecosyste.ms
Last synced: 29 days ago