EdisonAPI-1.2.1: A library of efficient, purely-functional data structures (API)Source codeContentsIndex
Data.Edison.Seq.ListSeq
PortabilityGHC, Hugs (MPTC and FD)
Stabilitystable
Maintainerrobdockins AT fastmail DOT fm
Contents
Sequence Type
Sequence Operations
Unit testing
Documentation
Description

This module packages the standard prelude list type as a sequence. This is the baseline sequence implementation and all methods have the default running times listed in Data.Edison.Seq, except for the following two trivial operations:

  • toList, fromList O( 1 )
Synopsis
type Seq a = [a]
empty :: [a]
singleton :: a -> [a]
lcons :: a -> [a] -> [a]
rcons :: a -> [a] -> [a]
append :: [a] -> [a] -> [a]
lview :: Monad rm => [a] -> rm (a, [a])
lhead :: [a] -> a
lheadM :: Monad rm => [a] -> rm a
ltail :: [a] -> [a]
ltailM :: Monad rm => [a] -> rm [a]
rview :: Monad rm => [a] -> rm (a, [a])
rhead :: [a] -> a
rheadM :: Monad rm => [a] -> rm a
rtail :: [a] -> [a]
rtailM :: Monad rm => [a] -> rm [a]
null :: [a] -> Bool
size :: [a] -> Int
concat :: [[a]] -> [a]
reverse :: [a] -> [a]
reverseOnto :: [a] -> [a] -> [a]
fromList :: [a] -> [a]
toList :: [a] -> [a]
map :: (a -> b) -> [a] -> [b]
concatMap :: (a -> [b]) -> [a] -> [b]
fold :: (a -> b -> b) -> b -> [a] -> b
fold' :: (a -> b -> b) -> b -> [a] -> b
fold1 :: (a -> a -> a) -> [a] -> a
fold1' :: (a -> a -> a) -> [a] -> a
foldr :: (a -> b -> b) -> b -> [a] -> b
foldr' :: (t -> b -> b) -> b -> [t] -> b
foldl :: (b -> a -> b) -> b -> [a] -> b
foldl' :: (b -> a -> b) -> b -> [a] -> b
foldr1 :: (a -> a -> a) -> [a] -> a
foldr1' :: (b -> b -> b) -> [b] -> b
foldl1 :: (a -> a -> a) -> [a] -> a
foldl1' :: (a -> a -> a) -> [a] -> a
reducer :: (a -> a -> a) -> a -> [a] -> a
reducer' :: (a -> a -> a) -> a -> [a] -> a
reducel :: (a -> a -> a) -> a -> [a] -> a
reducel' :: (a -> a -> a) -> a -> [a] -> a
reduce1 :: (a -> a -> a) -> [a] -> a
reduce1' :: (a -> a -> a) -> [a] -> a
copy :: Int -> a -> [a]
inBounds :: Int -> [a] -> Bool
lookup :: Int -> [a] -> a
lookupM :: Monad m => Int -> [a] -> m a
lookupWithDefault :: a -> Int -> [a] -> a
update :: Int -> a -> [a] -> [a]
adjust :: (a -> a) -> Int -> [a] -> [a]
mapWithIndex :: (Int -> a -> b) -> [a] -> [b]
foldrWithIndex :: (Int -> a -> b -> b) -> b -> [a] -> b
foldrWithIndex' :: (Enum a, Num a) => (a -> t -> b -> b) -> b -> [t] -> b
foldlWithIndex :: (b -> Int -> a -> b) -> b -> [a] -> b
foldlWithIndex' :: (b -> Int -> a -> b) -> b -> [a] -> b
take :: Int -> [a] -> [a]
drop :: Int -> [a] -> [a]
splitAt :: Int -> [a] -> ([a], [a])
subseq :: Int -> Int -> [a] -> [a]
filter :: (a -> Bool) -> [a] -> [a]
partition :: (a -> Bool) -> [a] -> ([a], [a])
takeWhile :: (a -> Bool) -> [a] -> [a]
dropWhile :: (a -> Bool) -> [a] -> [a]
splitWhile :: (a -> Bool) -> [a] -> ([a], [a])
zip :: [a] -> [b] -> [(a, b)]
zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
unzip :: [(a, b)] -> ([a], [b])
unzip3 :: [(a, b, c)] -> ([a], [b], [c])
unzipWith :: (a -> b) -> (a -> c) -> [a] -> ([b], [c])
unzipWith3 :: (a -> b) -> (a -> c) -> (a -> d) -> [a] -> ([b], [c], [d])
strict :: [a] -> [a]
strictWith :: (a -> b) -> [a] -> [a]
structuralInvariant :: [a] -> Bool
moduleName :: String
Sequence Type
type Seq a = [a]Source
Sequence Operations
empty :: [a]Source
singleton :: a -> [a]Source
lcons :: a -> [a] -> [a]Source
rcons :: a -> [a] -> [a]Source
append :: [a] -> [a] -> [a]Source
lview :: Monad rm => [a] -> rm (a, [a])Source
lhead :: [a] -> aSource
lheadM :: Monad rm => [a] -> rm aSource
ltail :: [a] -> [a]Source
ltailM :: Monad rm => [a] -> rm [a]Source
rview :: Monad rm => [a] -> rm (a, [a])Source
rhead :: [a] -> aSource
rheadM :: Monad rm => [a] -> rm aSource
rtail :: [a] -> [a]Source
rtailM :: Monad rm => [a] -> rm [a]Source
null :: [a] -> BoolSource
size :: [a] -> IntSource
concat :: [[a]] -> [a]Source
reverse :: [a] -> [a]Source
reverseOnto :: [a] -> [a] -> [a]Source
fromList :: [a] -> [a]Source
toList :: [a] -> [a]Source
map :: (a -> b) -> [a] -> [b]Source
concatMap :: (a -> [b]) -> [a] -> [b]Source
fold :: (a -> b -> b) -> b -> [a] -> bSource
fold' :: (a -> b -> b) -> b -> [a] -> bSource
fold1 :: (a -> a -> a) -> [a] -> aSource
fold1' :: (a -> a -> a) -> [a] -> aSource
foldr :: (a -> b -> b) -> b -> [a] -> bSource
foldr' :: (t -> b -> b) -> b -> [t] -> bSource
foldl :: (b -> a -> b) -> b -> [a] -> bSource
foldl' :: (b -> a -> b) -> b -> [a] -> bSource
foldr1 :: (a -> a -> a) -> [a] -> aSource
foldr1' :: (b -> b -> b) -> [b] -> bSource
foldl1 :: (a -> a -> a) -> [a] -> aSource
foldl1' :: (a -> a -> a) -> [a] -> aSource
reducer :: (a -> a -> a) -> a -> [a] -> aSource
reducer' :: (a -> a -> a) -> a -> [a] -> aSource
reducel :: (a -> a -> a) -> a -> [a] -> aSource
reducel' :: (a -> a -> a) -> a -> [a] -> aSource
reduce1 :: (a -> a -> a) -> [a] -> aSource
reduce1' :: (a -> a -> a) -> [a] -> aSource
copy :: Int -> a -> [a]Source
inBounds :: Int -> [a] -> BoolSource
lookup :: Int -> [a] -> aSource
lookupM :: Monad m => Int -> [a] -> m aSource
lookupWithDefault :: a -> Int -> [a] -> aSource
update :: Int -> a -> [a] -> [a]Source
adjust :: (a -> a) -> Int -> [a] -> [a]Source
mapWithIndex :: (Int -> a -> b) -> [a] -> [b]Source
foldrWithIndex :: (Int -> a -> b -> b) -> b -> [a] -> bSource
foldrWithIndex' :: (Enum a, Num a) => (a -> t -> b -> b) -> b -> [t] -> bSource
foldlWithIndex :: (b -> Int -> a -> b) -> b -> [a] -> bSource
foldlWithIndex' :: (b -> Int -> a -> b) -> b -> [a] -> bSource
take :: Int -> [a] -> [a]Source
drop :: Int -> [a] -> [a]Source
splitAt :: Int -> [a] -> ([a], [a])Source
subseq :: Int -> Int -> [a] -> [a]Source
filter :: (a -> Bool) -> [a] -> [a]Source
partition :: (a -> Bool) -> [a] -> ([a], [a])Source
takeWhile :: (a -> Bool) -> [a] -> [a]Source
dropWhile :: (a -> Bool) -> [a] -> [a]Source
splitWhile :: (a -> Bool) -> [a] -> ([a], [a])Source
zip :: [a] -> [b] -> [(a, b)]Source
zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]Source
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]Source
zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]Source
unzip :: [(a, b)] -> ([a], [b])Source
unzip3 :: [(a, b, c)] -> ([a], [b], [c])Source
unzipWith :: (a -> b) -> (a -> c) -> [a] -> ([b], [c])Source
unzipWith3 :: (a -> b) -> (a -> c) -> (a -> d) -> [a] -> ([b], [c], [d])Source
strict :: [a] -> [a]Source
strictWith :: (a -> b) -> [a] -> [a]Source
Unit testing
structuralInvariant :: [a] -> BoolSource
Documentation
moduleName :: StringSource
Produced by Haddock version 2.6.1