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)). _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell