Safe Haskell | None |
---|
Data.Vector.Fixed.Cont
Contents
Description
Continuations-based API
- data ContVecT m n a
- type ContVec = ContVecT Id
- type N1 = S Z
- type N2 = S N1
- type N3 = S N2
- type N4 = S N3
- type N5 = S N4
- type N6 = S N5
- cvec :: (Vector v a, Dim v ~ n, Monad m) => v a -> ContVecT m n a
- fromList :: forall m n a. Arity n => [a] -> ContVecT m n a
- replicate :: forall m n a. Arity n => a -> ContVecT m n a
- replicateM :: forall m n a. (Arity n, Monad m) => m a -> ContVecT m n a
- generate :: forall m n a. Arity n => (Int -> a) -> ContVecT m n a
- generateM :: forall m n a. (Monad m, Arity n) => (Int -> m a) -> ContVecT m n a
- basis :: forall m n a. (Num a, Arity n) => Int -> ContVecT m n a
- mk1 :: a -> ContVecT m N1 a
- mk2 :: a -> a -> ContVecT m N2 a
- mk3 :: a -> a -> a -> ContVecT m N3 a
- mk4 :: a -> a -> a -> a -> ContVecT m N4 a
- mk5 :: a -> a -> a -> a -> a -> ContVecT m N5 a
- map :: Arity n => (a -> b) -> ContVecT m n a -> ContVecT m n b
- imap :: Arity n => (Int -> a -> b) -> ContVecT m n a -> ContVecT m n b
- mapM :: (Arity n, Monad m) => (a -> m b) -> ContVecT m n a -> ContVecT m n b
- imapM :: (Arity n, Monad m) => (Int -> a -> m b) -> ContVecT m n a -> ContVecT m n b
- tail :: ContVecT m (S n) a -> ContVecT m n a
- cons :: a -> ContVecT m n a -> ContVecT m (S n) a
- zipWith :: Arity n => (a -> b -> c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n c
- izipWith :: Arity n => (Int -> a -> b -> c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n c
- zipWithM :: (Arity n, Monad m) => (a -> b -> m c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n c
- izipWithM :: (Arity n, Monad m) => (Int -> a -> b -> m c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n c
- runContVecT :: (Monad m, Arity n) => Fun n a r -> ContVecT m n a -> m r
- runContVecM :: Arity n => Fun n a (m r) -> ContVecT m n a -> m r
- runContVec :: Arity n => Fun n a r -> ContVec n a -> r
- head :: forall n a. Arity (S n) => Fun (S n) a a
- vector :: (Vector v a, Dim v ~ n) => ContVec n a -> v a
- vectorM :: (Vector v a, Dim v ~ n, Monad m) => ContVecT m n a -> m (v a)
- foldl :: forall n a b. Arity n => (b -> a -> b) -> b -> Fun n a b
- foldl1 :: forall n a. Arity (S n) => (a -> a -> a) -> Fun (S n) a a
- foldr :: forall n a b. Arity n => (a -> b -> b) -> b -> Fun n a b
- ifoldl :: forall n a b. Arity n => (b -> Int -> a -> b) -> b -> Fun n a b
- ifoldr :: forall n a b. Arity n => (Int -> a -> b -> b) -> b -> Fun n a b
- foldM :: forall n m a b. (Arity n, Monad m) => (b -> a -> m b) -> b -> Fun n a (m b)
- ifoldM :: forall n m a b. (Arity n, Monad m) => (b -> Int -> a -> m b) -> b -> Fun n a (m b)
- sum :: (Num a, Arity n) => Fun n a a
- minimum :: (Ord a, Arity (S n)) => Fun (S n) a a
- maximum :: (Ord a, Arity (S n)) => Fun (S n) a a
- and :: Arity n => Fun n Bool Bool
- or :: Arity n => Fun n Bool Bool
- all :: Arity n => (a -> Bool) -> Fun n a Bool
- any :: Arity n => (a -> Bool) -> Fun n a Bool
- data VecList n a
Vector as continuation
Vector represented as continuation.
Synonyms for small numerals
Construction of ContVec
cvec :: (Vector v a, Dim v ~ n, Monad m) => v a -> ContVecT m n aSource
Convert regular vector to continuation
fromList :: forall m n a. Arity n => [a] -> ContVecT m n aSource
Convert list to continuation-based vector. Will throw error if list is shorter than resulting vector.
replicate :: forall m n a. Arity n => a -> ContVecT m n aSource
Execute monadic action for every element of vector. Synonym for pure
.
replicateM :: forall m n a. (Arity n, Monad m) => m a -> ContVecT m n aSource
Execute monadic action for every element of vector.
generate :: forall m n a. Arity n => (Int -> a) -> ContVecT m n aSource
Generate vector from function which maps element's index to its value.
generateM :: forall m n a. (Monad m, Arity n) => (Int -> m a) -> ContVecT m n aSource
Generate vector from monadic function which maps element's index to its value.
Constructors
Transformations
map :: Arity n => (a -> b) -> ContVecT m n a -> ContVecT m n bSource
Map over vector. Synonym for fmap
imap :: Arity n => (Int -> a -> b) -> ContVecT m n a -> ContVecT m n bSource
Apply function to every element of the vector and its index.
mapM :: (Arity n, Monad m) => (a -> m b) -> ContVecT m n a -> ContVecT m n bSource
Monadic map over vector.
imapM :: (Arity n, Monad m) => (Int -> a -> m b) -> ContVecT m n a -> ContVecT m n bSource
Apply monadic function to every element of the vector and its index.
Zips
zipWith :: Arity n => (a -> b -> c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n cSource
Zip two vector together using function.
izipWith :: Arity n => (Int -> a -> b -> c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n cSource
Zip two vector together using function which takes element index as well.
zipWithM :: (Arity n, Monad m) => (a -> b -> m c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n cSource
Zip two vector together using monadic function.
izipWithM :: (Arity n, Monad m) => (Int -> a -> b -> m c) -> ContVecT m n a -> ContVecT m n b -> ContVecT m n cSource
Zip two vector together using monadic function which takes element index as well..
Running ContVec
Only way to get result from continuation vector is to apply
finalizer function to them using runContVecT
, runContVecM
or
runContVec
. Getters and folds are defined as such finalizer
functions.
Run continuation vector using non-monadic finalizer.
Run continuation vector using monadic finalizer.
runContVec :: Arity n => Fun n a r -> ContVec n a -> rSource
Run continuation vector.
Getters
head :: forall n a. Arity (S n) => Fun (S n) a aSource
Finalizer function for getting head of the vector.
Vector construction
vectorM :: (Vector v a, Dim v ~ n, Monad m) => ContVecT m n a -> m (v a)Source
Convert continuation to the vector.
Folds
foldl :: forall n a b. Arity n => (b -> a -> b) -> b -> Fun n a bSource
Left fold over continuation vector.
foldr :: forall n a b. Arity n => (a -> b -> b) -> b -> Fun n a bSource
Right fold over continuation vector
ifoldl :: forall n a b. Arity n => (b -> Int -> a -> b) -> b -> Fun n a bSource
Left fold over continuation vector.
ifoldr :: forall n a b. Arity n => (Int -> a -> b -> b) -> b -> Fun n a bSource
Right fold over continuation vector
foldM :: forall n m a b. (Arity n, Monad m) => (b -> a -> m b) -> b -> Fun n a (m b)Source
Monadic left fold over continuation vector.
ifoldM :: forall n m a b. (Arity n, Monad m) => (b -> Int -> a -> m b) -> b -> Fun n a (m b)Source
Monadic left fold over continuation vector.
Special folds
all :: Arity n => (a -> Bool) -> Fun n a BoolSource
Determines whether all elements of vector satisfy predicate.
any :: Arity n => (a -> Bool) -> Fun n a BoolSource
Determines whether any of element of vector satisfy predicate.