Does anyone want intersperse for Data.Sequence?

Ben midfield at gmail.com
Mon Dec 29 19:25:27 UTC 2014


clojure-style persistent vectors based on hashed array mapped tries, or RRB-trees [1][2] would be great to have.  the basic structure is the same for unordered-container's hash maps, so reusing code there is a possibility.

b

1 - http://infoscience.epfl.ch/record/169879/files/RMTrees.pdf
2 - https://github.com/clojure/core.rrb-vector/

> On Dec 29, 2014, at 8:09 AM, Ross Paterson <R.Paterson at city.ac.uk> wrote:
> 
> On Sun, Dec 28, 2014 at 11:01:46AM +0200, Roman Cheplyaka wrote:
>> On 27/12/14 17:03, Greg Weber wrote:
>>> Sequence is not used nearly enough.
>> 
>> Not really. Seq has high constant factors and for small sizes is often
>> slower than plain lists. Nor is it space-efficient (for big sizes).
> 
> Clearly Seq uses more space than arrays, but I estimate that a large
> Seq uses between 5/6 and 4/3 of the space of an equivalent list,
> with Seq's built with deque operations tending toward the lower end
> and append/split moving them toward the middle of the range.  So I'd
> say they're about the same (unless the list is deforested, of course).
> Do you have measurements that give different results?
> 
>> It probably has its use cases, but most of the time you'd be better off
>> with one of the other choices:
> 
> Those choices will beat Seq on particular operation mixes, but the virtue
> of Seq is that it gives decent performance over a broad set of operations.
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries



More information about the Libraries mailing list