Data.Foldable - purescript-foldable-traversable - Pursuit (original) (raw)
Package
purescript-foldable-traversable
Repository
purescript/purescript-foldable-traversable
#foldrDefault Source
foldrDefault :: forall f a b. Foldable f => (a -> b -> b) -> b -> f a -> b
A default implementation of foldr
using foldMap
.
Note: when defining a Foldable
instance, this function is unsafe to use in combination with foldMapDefaultR
.
#foldlDefault Source
foldlDefault :: forall f a b. Foldable f => (b -> a -> b) -> b -> f a -> b
A default implementation of foldl
using foldMap
.
Note: when defining a Foldable
instance, this function is unsafe to use in combination with foldMapDefaultL
.
#foldMapDefaultL Source
foldMapDefaultL :: forall f a m. Foldable f => Monoid m => (a -> m) -> f a -> m
A default implementation of foldMap
using foldl
.
Note: when defining a Foldable
instance, this function is unsafe to use in combination with foldlDefault
.
#foldMapDefaultR Source
foldMapDefaultR :: forall f a m. Foldable f => Monoid m => (a -> m) -> f a -> m
A default implementation of foldMap
using foldr
.
Note: when defining a Foldable
instance, this function is unsafe to use in combination with foldrDefault
.
#fold Source
fold :: forall f m. Foldable f => Monoid m => f m -> m
Fold a data structure, accumulating values in some Monoid
.
#foldM Source
foldM :: forall f m a b. Foldable f => Monad m => (b -> a -> m b) -> b -> f a -> m b
Similar to 'foldl', but the result is encapsulated in a monad.
Note: this function is not generally stack-safe, e.g., for monads which build up thunks a la Eff
.
#traverse_ Source
traverse_ :: forall a b f m. Applicative m => Foldable f => (a -> m b) -> f a -> m Unit
Traverse a data structure, performing some effects encoded by anApplicative
functor at each value, ignoring the final result.
For example:
traverse_ print [1, 2, 3]
#for_ Source
for_ :: forall a b f m. Applicative m => Foldable f => f a -> (a -> m b) -> m Unit
A version of traverse_
with its arguments flipped.
This can be useful when running an action written using do notation for every element in a data structure:
For example:
for_ [1, 2, 3] \n -> do
print n
trace "squared is"
print (n * n)
#sequence_ Source
sequence_ :: forall a f m. Applicative m => Foldable f => f (m a) -> m Unit
Perform all of the effects in some data structure in the order given by the Foldable
instance, ignoring the final result.
For example:
sequence_ [ trace "Hello, ", trace " world!" ]
#oneOf Source
oneOf :: forall f g a. Foldable f => Plus g => f (g a) -> g a
Combines a collection of elements using the Alt
operation.
#intercalate Source
intercalate :: forall f m. Foldable f => Monoid m => m -> f m -> m
Fold a data structure, accumulating values in some Monoid
, combining adjacent elements using the specified separator.
For example:
> intercalate ", " ["Lorem", "ipsum", "dolor"]
= "Lorem, ipsum, dolor"
> intercalate "*" ["a", "b", "c"]
= "a*b*c"
> intercalate [1] [[2, 3], [4, 5], [6, 7]]
= [2, 3, 1, 4, 5, 1, 6, 7]
#surroundMap Source
surroundMap :: forall f a m. Foldable f => Semigroup m => m -> (a -> m) -> f a -> m
foldMap
but with each element surrounded by some fixed value.
For example:
> surroundMap "*" show []
= "*"
> surroundMap "*" show [1]
= "*1*"
> surroundMap "*" show [1, 2]
= "*1*2*"
> surroundMap "*" show [1, 2, 3]
= "*1*2*3*"
#surround Source
surround :: forall f m. Foldable f => Semigroup m => m -> f m -> m
fold
but with each element surrounded by some fixed value.
For example:
> surround "*" []
= "*"
> surround "*" ["1"]
= "*1*"
> surround "*" ["1", "2"]
= "*1*2*"
> surround "*" ["1", "2", "3"]
= "*1*2*3*"
#and Source
and :: forall a f. Foldable f => HeytingAlgebra a => f a -> a
The conjunction of all the values in a data structure. When specialized to Boolean
, this function will test whether all of the values in a data structure are true
.
#or Source
or :: forall a f. Foldable f => HeytingAlgebra a => f a -> a
The disjunction of all the values in a data structure. When specialized to Boolean
, this function will test whether any of the values in a data structure is true
.
#all Source
all :: forall a b f. Foldable f => HeytingAlgebra b => (a -> b) -> f a -> b
all f
is the same as and <<< map f
; map a function over the structure, and then get the conjunction of the results.
#any Source
any :: forall a b f. Foldable f => HeytingAlgebra b => (a -> b) -> f a -> b
any f
is the same as or <<< map f
; map a function over the structure, and then get the disjunction of the results.
#findMap Source
findMap :: forall a b f. Foldable f => (a -> Maybe b) -> f a -> Maybe b
Try to find an element in a data structure which satisfies a predicate mapping.
#maximumBy Source
maximumBy :: forall a f. Foldable f => (a -> a -> Ordering) -> f a -> Maybe a
Find the largest element of a structure, according to a given comparison function. The comparison function should represent a total ordering (see the Ord
type class laws); if it does not, the behaviour is undefined.
#minimum Source
minimum :: forall a f. Ord a => Foldable f => f a -> Maybe a
Find the smallest element of a structure, according to its Ord
instance.
#minimumBy Source
minimumBy :: forall a f. Foldable f => (a -> a -> Ordering) -> f a -> Maybe a
Find the smallest element of a structure, according to a given comparison function. The comparison function should represent a total ordering (see the Ord
type class laws); if it does not, the behaviour is undefined.
#null Source
null :: forall a f. Foldable f => f a -> Boolean
Test whether the structure is empty. Optimized for structures that are similar to cons-lists, because there is no general way to do better.
#length Source
length :: forall a b f. Foldable f => Semiring b => f a -> b
Returns the size/length of a finite structure. Optimized for structures that are similar to cons-lists, because there is no general way to do better.
#lookup Source
lookup :: forall a b f. Foldable f => Eq a => a -> f (Tuple a b) -> Maybe b
Lookup a value in a data structure of Tuple
s, generalizing association lists.