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.ht... [...] 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)).