 EdisonCore1.2.1.2: A library of efficent, purelyfunctional data structures (Core Implementations)  Source code  Contents  Index 

Data.Edison.Seq.MyersStack  Portability  GHC, Hugs (MPTC and FD)  Stability  stable  Maintainer  robdockins AT fastmail DOT fm 





Description 
Meyers Stacks. All operations are as listed in Data.Edison.Seq except
the following:
 lookup, inBounds, drop O( min(i, log n) )
 rhead*, size O( log n )
 subseq O( min (i, log n) + len )
References:
 Eugene Myers. "An applicative randomaccess stack". /Information
Processing Letters/, 17(5):241248, December 1983.


Synopsis 

data Seq a   empty :: Seq a   singleton :: a > Seq a   lcons :: a > Seq a > Seq a   rcons :: a > Seq a > Seq a   append :: Seq a > Seq a > Seq a   lview :: Monad m => Seq a > m (a, Seq a)   lhead :: Seq a > a   ltail :: Seq a > Seq a   rview :: Monad m => Seq a > m (a, Seq a)   rhead :: Seq a > a   rtail :: Seq a > Seq a   lheadM :: Monad m => Seq a > m a   ltailM :: Monad m => Seq a > m (Seq a)   rheadM :: Monad m => Seq a > m a   rtailM :: Monad m => Seq a > m (Seq a)   null :: Seq a > Bool   size :: Seq a > Int   concat :: Seq (Seq a) > Seq a   reverse :: Seq a > Seq a   reverseOnto :: Seq a > Seq a > Seq a   fromList :: [a] > Seq a   toList :: Seq a > [a]   map :: (a > b) > Seq a > Seq b   concatMap :: (a > Seq b) > Seq a > Seq b   fold :: (a > b > b) > b > Seq a > b   fold' :: (a > b > b) > b > Seq a > b   fold1 :: (a > a > a) > Seq a > a   fold1' :: (a > a > a) > Seq a > a   foldr :: (a > b > b) > b > Seq a > b   foldr' :: (a > b > b) > b > Seq a > b   foldl :: (b > a > b) > b > Seq a > b   foldl' :: (b > a > b) > b > Seq a > b   foldr1 :: (a > a > a) > Seq a > a   foldr1' :: (a > a > a) > Seq a > a   foldl1 :: (a > a > a) > Seq a > a   foldl1' :: (a > a > a) > Seq a > a   reducer :: (a > a > a) > a > Seq a > a   reducer' :: (a > a > a) > a > Seq a > a   reducel :: (a > a > a) > a > Seq a > a   reducel' :: (a > a > a) > a > Seq a > a   reduce1 :: (a > a > a) > Seq a > a   reduce1' :: (a > a > a) > Seq a > a   copy :: Int > a > Seq a   inBounds :: Int > Seq a > Bool   lookup :: Int > Seq a > a   lookupM :: Monad m => Int > Seq a > m a   lookupWithDefault :: a > Int > Seq a > a   update :: Int > a > Seq a > Seq a   adjust :: (a > a) > Int > Seq a > Seq a   mapWithIndex :: (Int > a > b) > Seq a > Seq b   foldrWithIndex :: (Int > a > b > b) > b > Seq a > b   foldrWithIndex' :: (Int > a > b > b) > b > Seq a > b   foldlWithIndex :: (b > Int > a > b) > b > Seq a > b   foldlWithIndex' :: (b > Int > a > b) > b > Seq a > b   take :: Int > Seq a > Seq a   drop :: Int > Seq a > Seq a   splitAt :: Int > Seq a > (Seq a, Seq a)   subseq :: Int > Int > Seq a > Seq a   filter :: (a > Bool) > Seq a > Seq a   partition :: (a > Bool) > Seq a > (Seq a, Seq a)   takeWhile :: (a > Bool) > Seq a > Seq a   dropWhile :: (a > Bool) > Seq a > Seq a   splitWhile :: (a > Bool) > Seq a > (Seq a, Seq a)   zip :: Seq a > Seq b > Seq (a, b)   zip3 :: Seq a > Seq b > Seq c > Seq (a, b, c)   zipWith :: (a > b > c) > Seq a > Seq b > Seq c   zipWith3 :: (a > b > c > d) > Seq a > Seq b > Seq c > Seq d   unzip :: Seq (a, b) > (Seq a, Seq b)   unzip3 :: Seq (a, b, c) > (Seq a, Seq b, Seq c)   unzipWith :: (a > b) > (a > c) > Seq a > (Seq b, Seq c)   unzipWith3 :: (a > b) > (a > c) > (a > d) > Seq a > (Seq b, Seq c, Seq d)   strict :: Seq a > Seq a   strictWith :: (a > b) > Seq a > Seq a   structuralInvariant :: Seq a > Bool   moduleName :: String 



Sequence Type



Instances  


Sequence Operations


















































fold :: (a > b > b) > b > Seq a > b  Source 


fold' :: (a > b > b) > b > Seq a > b  Source 






foldr :: (a > b > b) > b > Seq a > b  Source 


foldr' :: (a > b > b) > b > Seq a > b  Source 


foldl :: (b > a > b) > b > Seq a > b  Source 


foldl' :: (b > a > b) > b > Seq a > b  Source 










reducer :: (a > a > a) > a > Seq a > a  Source 


reducer' :: (a > a > a) > a > Seq a > a  Source 


reducel :: (a > a > a) > a > Seq a > a  Source 


reducel' :: (a > a > a) > a > Seq a > a  Source 




reduce1' :: (a > a > a) > Seq a > a  Source 


















foldrWithIndex :: (Int > a > b > b) > b > Seq a > b  Source 


foldrWithIndex' :: (Int > a > b > b) > b > Seq a > b  Source 


foldlWithIndex :: (b > Int > a > b) > b > Seq a > b  Source 


foldlWithIndex' :: (b > Int > a > b) > b > Seq a > b  Source 








































Unit testing




Documentation




Produced by Haddock version 2.3.0 