EdisonAPI-1.2.2.1: A library of efficent, purely-functional data structures (API)

CopyrightCopyright (c) 1998 Chris Okasaki
LicenseMIT; see COPYRIGHT file for terms and conditions
Maintainerrobdockins AT fastmail DOT fm
Stabilitystable
PortabilityGHC, Hugs (MPTC and FD)
Safe HaskellSafe-Inferred
LanguageHaskell98

Data.Edison.Seq.ListSeq

Contents

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

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] -> a Source

lheadM :: Monad rm => [a] -> rm a Source

ltail :: [a] -> [a] Source

ltailM :: Monad rm => [a] -> rm [a] Source

rview :: Monad rm => [a] -> rm (a, [a]) Source

rhead :: [a] -> a Source

rheadM :: Monad rm => [a] -> rm a Source

rtail :: [a] -> [a] Source

rtailM :: Monad rm => [a] -> rm [a] Source

null :: [a] -> Bool Source

size :: [a] -> Int Source

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] -> b Source

fold' :: (a -> b -> b) -> b -> [a] -> b Source

fold1 :: (a -> a -> a) -> [a] -> a Source

fold1' :: (a -> a -> a) -> [a] -> a Source

foldr :: (a -> b -> b) -> b -> [a] -> b Source

foldr' :: (t -> a -> a) -> a -> [t] -> a Source

foldl :: (b -> a -> b) -> b -> [a] -> b Source

foldl' :: (b -> a -> b) -> b -> [a] -> b Source

foldr1 :: (a -> a -> a) -> [a] -> a Source

foldr1' :: (a -> a -> a) -> [a] -> a Source

foldl1 :: (a -> a -> a) -> [a] -> a Source

foldl1' :: (a -> a -> a) -> [a] -> a Source

reducer :: (a -> a -> a) -> a -> [a] -> a Source

reducer' :: (a -> a -> a) -> a -> [a] -> a Source

reducel :: (a -> a -> a) -> a -> [a] -> a Source

reducel' :: (a -> a -> a) -> a -> [a] -> a Source

reduce1 :: (a -> a -> a) -> [a] -> a Source

reduce1' :: (a -> a -> a) -> [a] -> a Source

copy :: Int -> a -> [a] Source

inBounds :: Int -> [a] -> Bool Source

lookup :: Int -> [a] -> a Source

lookupM :: Monad m => Int -> [a] -> m a Source

lookupWithDefault :: a -> Int -> [a] -> a Source

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] -> b Source

foldrWithIndex' :: (Num a1, Enum a1) => (a1 -> t -> a -> a) -> a -> [t] -> a Source

foldlWithIndex :: (b -> Int -> a -> b) -> b -> [a] -> b Source

foldlWithIndex' :: (b -> Int -> a -> b) -> b -> [a] -> b Source

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

Documentation