Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | Roman Leshchinskiy <[email protected]> |
Data.Vector
Contents
Description
Boxed vectors
- data Vector a
- length :: Vector a -> Int
- null :: Vector a -> Bool
- empty :: Vector a
- singleton :: a -> Vector a
- cons :: a -> Vector a -> Vector a
- snoc :: Vector a -> a -> Vector a
- replicate :: Int -> a -> Vector a
- (++) :: Vector a -> Vector a -> Vector a
- copy :: Vector a -> Vector a
- (!) :: Vector a -> Int -> a
- head :: Vector a -> a
- last :: Vector a -> a
- indexM :: Monad m => Vector a -> Int -> m a
- headM :: Monad m => Vector a -> m a
- lastM :: Monad m => Vector a -> m a
- slice :: Vector a -> Int -> Int -> Vector a
- init :: Vector a -> Vector a
- tail :: Vector a -> Vector a
- take :: Int -> Vector a -> Vector a
- drop :: Int -> Vector a -> Vector a
- accum :: (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
- (//) :: Vector a -> [(Int, a)] -> Vector a
- update :: Vector a -> Vector (Int, a) -> Vector a
- backpermute :: Vector a -> Vector Int -> Vector a
- reverse :: Vector a -> Vector a
- map :: (a -> b) -> Vector a -> Vector b
- concatMap :: (a -> Vector b) -> Vector a -> Vector b
- zipWith :: (a -> b -> c) -> Vector a -> Vector b -> Vector c
- zipWith3 :: (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
- zip :: Vector a -> Vector b -> Vector (a, b)
- zip3 :: Vector a -> Vector b -> Vector c -> Vector (a, b, c)
- unzip :: Vector (a, b) -> (Vector a, Vector b)
- unzip3 :: Vector (a, b, c) -> (Vector a, Vector b, Vector c)
- filter :: (a -> Bool) -> Vector a -> Vector a
- takeWhile :: (a -> Bool) -> Vector a -> Vector a
- dropWhile :: (a -> Bool) -> Vector a -> Vector a
- elem :: Eq a => a -> Vector a -> Bool
- notElem :: Eq a => a -> Vector a -> Bool
- find :: (a -> Bool) -> Vector a -> Maybe a
- findIndex :: (a -> Bool) -> Vector a -> Maybe Int
- foldl :: (a -> b -> a) -> a -> Vector b -> a
- foldl1 :: (a -> a -> a) -> Vector a -> a
- foldl' :: (a -> b -> a) -> a -> Vector b -> a
- foldl1' :: (a -> a -> a) -> Vector a -> a
- foldr :: (a -> b -> b) -> b -> Vector a -> b
- foldr1 :: (a -> a -> a) -> Vector a -> a
- and :: Vector Bool -> Bool
- or :: Vector Bool -> Bool
- sum :: Num a => Vector a -> a
- product :: Num a => Vector a -> a
- maximum :: Ord a => Vector a -> a
- minimum :: Ord a => Vector a -> a
- unfoldr :: (b -> Maybe (a, b)) -> b -> Vector a
- prescanl :: (a -> b -> a) -> a -> Vector b -> Vector a
- prescanl' :: (a -> b -> a) -> a -> Vector b -> Vector a
- enumFromTo :: Enum a => a -> a -> Vector a
- enumFromThenTo :: Enum a => a -> a -> a -> Vector a
- toList :: Vector a -> [a]
- fromList :: [a] -> Vector a
Documentation
Length information
Construction
replicate :: Int -> a -> Vector aSource
Vector of the given length with the given value in each position
Accessing individual elements
indexM :: Monad m => Vector a -> Int -> m aSource
Monadic indexing which can be strict in the vector while remaining lazy in the element
Subvectors
Yield a part of the vector without copying it. Safer version of
unsafeSlice
.
Permutations
Mapping
Zipping and unzipping
zipWith :: (a -> b -> c) -> Vector a -> Vector b -> Vector cSource
Zip two vectors with the given function.
zipWith3 :: (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector dSource
Zip three vectors with the given function.
Filtering
takeWhile :: (a -> Bool) -> Vector a -> Vector aSource
Yield the longest prefix of elements satisfying the predicate.
dropWhile :: (a -> Bool) -> Vector a -> Vector aSource
Drop the longest prefix of elements that satisfy the predicate.
Searching
Folding
foldl1' :: (a -> a -> a) -> Vector a -> aSource
Left fold on non-empty vectors with strict accumulator
Specialised folds
Unfolding
Scans
Enumeration
enumFromTo :: Enum a => a -> a -> Vector aSource
enumFromThenTo :: Enum a => a -> a -> a -> Vector aSource