| EdisonCore-1.2.1.1: A library of efficent, purely-functional 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 random-access stack". /Information
Processing Letters/, 17(5):241-248, 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 |