I've been meaning to generalize Data.Rope in my rope library to use Vector rather than ByteString.
Ultimately it looks like a FingerTree of Vector's using length as the monoid. The vectors can be sliced cheaply and the fingertree as a whole supports cheap splicing. -Edward Kmett On Wed, Apr 7, 2010 at 6:22 PM, Dan Piponi <[email protected]> wrote: > I have a situation where I have a bunch of lists and I'll frequently > be making new lists from the old ones by applying map and filter. The > map will be applying a function that's effectively the identity on > most elements of the list, and filter will be using a function that > usually gives True. This means that there is potential for a large > amount of sharing between these lists that could be exploited, > something that ordinary lists would do badly. Does anyone have a > recommendation for a pure functional data structure for this case? > > (It reminds me a bit of my own antidiagonal type, but that's not well > adapted to the highly dynamic situation I'm describing.) > -- > Dan > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
