[Haskell] Looking for a random-access sequence data structure
Ross Paterson
ross at soi.city.ac.uk
Fri Jan 13 15:52:52 EST 2006
On Fri, Jan 13, 2006 at 08:25:46PM +0000, Duncan Coutts wrote:
> On Fri, 2006-01-13 at 13:53 +0000, Ross Paterson wrote:
> > Have a look at Data.Sequence (in CVS/darcs version), docs at
> >
> > http://www.haskell.org/ghc/dist/current/docs/libraries/base/Data-Sequence.html
> [...]
> It's probably too much to ask, but here's a question:
>
> would it be possible to provide an operation that gives a left or right
> view from looking up an index. Say:
>
> viewrFromIndex :: Seq a -> Int -> ViewL a
> viewlFromIndex :: Seq a -> Int -> ViewR a
>
> The library currently provides views for the each end of the sequence.
>
> viewl :: Seq a -> ViewL a
> viewr :: Seq a -> ViewR a
>
> I suppose this would be a zipper-like iterator for the sequence?
I'm not entirely sure what these are intended to do, but can't you
just compose view[lr] with take/drop?
A zipper for a non-empty sequence is just an element and a pair of
sequences. Moving it by k positions using splitAt and (><) costs
O(log(k+1)).
More information about the Haskell
mailing list