| EdisonCore-1.2.1.2: A library of efficent, purely-functional data structures (Core Implementations) | Source code | Contents | Index |
|
Data.Edison.Seq.RevSeq | Portability | GHC, Hugs (MPTC and FD) | Stability | stable | Maintainer | robdockins AT fastmail DOT fm |
|
|
|
|
|
Description |
This module defines a sequence adaptor Rev s.
If s is a sequence type constructor, then Rev s
is a sequence type constructor that is identical to s,
except that it is kept in the opposite order.
Also keeps explicit track of the size of the sequence,
similar to the Sized adaptor in Data.Edison.Seq.SizedSeq.
This module is most useful when s is a sequence type
that offers fast access to the front but slow access
to the rear, and your application needs the opposite
(i.e., fast access to the rear but slow access to the
front).
All time complexities are determined by the underlying
sequence, except that the complexities for accessing
the left and right sides of the sequence are exchanged,
and size becomes O( 1 ).
|
|
Synopsis |
|
data Rev s a | | empty :: Sequence s => Rev s a | | singleton :: Sequence s => a -> Rev s a | | lcons :: Sequence s => a -> Rev s a -> Rev s a | | rcons :: Sequence s => a -> Rev s a -> Rev s a | | append :: Sequence s => Rev s a -> Rev s a -> Rev s a | | lview :: (Sequence s, Monad m) => Rev s a -> m (a, Rev s a) | | lhead :: Sequence s => Rev s a -> a | | ltail :: Sequence s => Rev s a -> Rev s a | | rview :: (Sequence s, Monad m) => Rev s a -> m (a, Rev s a) | | rhead :: Sequence s => Rev s a -> a | | rtail :: Sequence s => Rev s a -> Rev s a | | lheadM :: (Sequence s, Monad m) => Rev s a -> m a | | ltailM :: (Sequence s, Monad m) => Rev s a -> m (Rev s a) | | rheadM :: (Sequence s, Monad m) => Rev s a -> m a | | rtailM :: (Sequence s, Monad m) => Rev s a -> m (Rev s a) | | null :: Sequence s => Rev s a -> Bool | | size :: Sequence s => Rev s a -> Int | | concat :: Sequence s => Rev s (Rev s a) -> Rev s a | | reverse :: Sequence s => Rev s a -> Rev s a | | reverseOnto :: Sequence s => Rev s a -> Rev s a -> Rev s a | | fromList :: Sequence s => [a] -> Rev s a | | toList :: Sequence s => Rev s a -> [a] | | map :: Sequence s => (a -> b) -> Rev s a -> Rev s b | | concatMap :: Sequence s => (a -> Rev s b) -> Rev s a -> Rev s b | | fold :: Sequence s => (a -> b -> b) -> b -> Rev s a -> b | | fold' :: Sequence s => (a -> b -> b) -> b -> Rev s a -> b | | fold1 :: Sequence s => (a -> a -> a) -> Rev s a -> a | | fold1' :: Sequence s => (a -> a -> a) -> Rev s a -> a | | foldr :: Sequence s => (a -> b -> b) -> b -> Rev s a -> b | | foldr' :: Sequence s => (a -> b -> b) -> b -> Rev s a -> b | | foldl :: Sequence s => (b -> a -> b) -> b -> Rev s a -> b | | foldl' :: Sequence s => (b -> a -> b) -> b -> Rev s a -> b | | foldr1 :: Sequence s => (a -> a -> a) -> Rev s a -> a | | foldr1' :: Sequence s => (a -> a -> a) -> Rev s a -> a | | foldl1 :: Sequence s => (a -> a -> a) -> Rev s a -> a | | foldl1' :: Sequence s => (a -> a -> a) -> Rev s a -> a | | reducer :: Sequence s => (a -> a -> a) -> a -> Rev s a -> a | | reducer' :: Sequence s => (a -> a -> a) -> a -> Rev s a -> a | | reducel :: Sequence s => (a -> a -> a) -> a -> Rev s a -> a | | reducel' :: Sequence s => (a -> a -> a) -> a -> Rev s a -> a | | reduce1 :: Sequence s => (a -> a -> a) -> Rev s a -> a | | reduce1' :: Sequence s => (a -> a -> a) -> Rev s a -> a | | copy :: Sequence s => Int -> a -> Rev s a | | inBounds :: Sequence s => Int -> Rev s a -> Bool | | lookup :: Sequence s => Int -> Rev s a -> a | | lookupM :: (Sequence s, Monad m) => Int -> Rev s a -> m a | | lookupWithDefault :: Sequence s => a -> Int -> Rev s a -> a | | update :: Sequence s => Int -> a -> Rev s a -> Rev s a | | adjust :: Sequence s => (a -> a) -> Int -> Rev s a -> Rev s a | | mapWithIndex :: Sequence s => (Int -> a -> b) -> Rev s a -> Rev s b | | foldrWithIndex :: Sequence s => (Int -> a -> b -> b) -> b -> Rev s a -> b | | foldrWithIndex' :: Sequence s => (Int -> a -> b -> b) -> b -> Rev s a -> b | | foldlWithIndex :: Sequence s => (b -> Int -> a -> b) -> b -> Rev s a -> b | | foldlWithIndex' :: Sequence s => (b -> Int -> a -> b) -> b -> Rev s a -> b | | take :: Sequence s => Int -> Rev s a -> Rev s a | | drop :: Sequence s => Int -> Rev s a -> Rev s a | | splitAt :: Sequence s => Int -> Rev s a -> (Rev s a, Rev s a) | | subseq :: Sequence s => Int -> Int -> Rev s a -> Rev s a | | filter :: Sequence s => (a -> Bool) -> Rev s a -> Rev s a | | partition :: Sequence s => (a -> Bool) -> Rev s a -> (Rev s a, Rev s a) | | takeWhile :: Sequence s => (a -> Bool) -> Rev s a -> Rev s a | | dropWhile :: Sequence s => (a -> Bool) -> Rev s a -> Rev s a | | splitWhile :: Sequence s => (a -> Bool) -> Rev s a -> (Rev s a, Rev s a) | | zip :: Sequence s => Rev s a -> Rev s b -> Rev s (a, b) | | zip3 :: Sequence s => Rev s a -> Rev s b -> Rev s c -> Rev s (a, b, c) | | zipWith :: Sequence s => (a -> b -> c) -> Rev s a -> Rev s b -> Rev s c | | zipWith3 :: Sequence s => (a -> b -> c -> d) -> Rev s a -> Rev s b -> Rev s c -> Rev s d | | unzip :: Sequence s => Rev s (a, b) -> (Rev s a, Rev s b) | | unzip3 :: Sequence s => Rev s (a, b, c) -> (Rev s a, Rev s b, Rev s c) | | unzipWith :: Sequence s => (a -> b) -> (a -> c) -> Rev s a -> (Rev s b, Rev s c) | | unzipWith3 :: Sequence s => (a -> b) -> (a -> c) -> (a -> d) -> Rev s a -> (Rev s b, Rev s c, Rev s d) | | strict :: Sequence s => Rev s a -> Rev s a | | strictWith :: Sequence s => (a -> b) -> Rev s a -> Rev s a | | structuralInvariant :: Sequence s => Rev s a -> Bool | | moduleName :: String | | instanceName :: Sequence s => Rev s a -> String | | fromSeq :: Sequence s => s a -> Rev s a | | toSeq :: Sequence s => Rev s a -> s a |
|
|
|
Rev Sequence Type
|
|
|
Instances | |
|
|
Sequence Operations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unit testing
|
|
|
|
Documentation
|
|
|
|
|
|
Other supported operations
|
|
|
|
|
|
Produced by Haddock version 2.3.0 |