[Haskell-cafe] Structural sharing in haskell data structures?
Jan-Willem Maessen
jmaessen at alum.mit.edu
Thu May 14 11:21:21 EDT 2009
On May 14, 2009, at 11:01 AM, Dan Doel wrote:
> On Thursday 14 May 2009 9:03:30 am Jan-Willem Maessen wrote:
>> Hmm, I think neither of the data structures you name actually support
>> both O(lg n) indexing and O(lg n) cons or append. That said, your
>> point is well taken, so let's instead state it as a challenge:
>
> Data.Sequence has O(log n) index, concatenation, update, take, drop
> and
> splitAt, and O(1) cons, snoc, and viewing at both ends, according to
> the
> documentation.
Yes. But large sequences end up being quite deep. Can a wide-fanout
version be made that is actually faster? Note that the effective
fanout of Hinze's finger trees is approximately e; consider effective
fanouts of e^2 to e^4 (which may require substantially higher maximum
fanout).
-Jan
> -- Dan
More information about the Haskell-Cafe
mailing list