Where the &quot;persistent&quot; part of the name comes from?. It can be serialized/deserialized from a persistent storage automatically or on demand?<br><br><div class="gmail_quote">2012/8/29 Tristan Ravitch <span dir="ltr">&lt;<a href="mailto:travitch@cs.wisc.edu" target="_blank">travitch@cs.wisc.edu</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I uploaded a package implementing persistent vectors using array<br>
mapped tries (based on the implementation in clojure).  Version<br>
0.1.0.0 was broken, so I am starting off with 0.1.0.1.<br>
<br>
  <a href="http://hackage.haskell.org/package/persistent-vector" target="_blank">http://hackage.haskell.org/package/persistent-vector</a><br>
<br>
Persistent vectors are a sequence container offering efficient and<br>
purely functional append (snoc), indexing, and updates.  This is<br>
similar to Data.Sequence from containers.  The array mapped trie<br>
is closely related to the data structure used in the<br>
unordered-containers package.<br>
<br>
Comparison to Sequence:<br>
<br>
 * Faster indexing and append<br>
<br>
 * Slightly slower updates to existing elements<br>
<br>
 * O(1) slicing<br>
<br>
 * Sequence offers efficient prepend and concatenate<br>
   (persistent-vector does not implement prepend, while concatenate is<br>
   O(n)).<br>
<br>
I tried to model the API after Sequence as much as was reasonable, but<br>
a few functions are still missing.  Some are reasonable to implement<br>
and some would be difficult to make efficient.  The results from<br>
criterion (mostly comparing against Sequence and IntMap) are posted<br>
here:<br>
<br>
  <a href="http://pages.cs.wisc.edu/~travitch/pvec.html" target="_blank">http://pages.cs.wisc.edu/~travitch/pvec.html</a><br>
<br>
The *Vec* runs are the vectors from this package and IM and Seq are<br>
IntMap and Sequence from containers.<br>
<br>
<br>
Hopefully someone will find this useful.  Comments and suggestions are<br>
definitely welcome for anything: API, implementation, test suite, or<br>
benchmarks.<br>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>