Sequence f
, then fa
, combining their results by function
application.
Sequence f
, then fa
, combining their results by function
application.
NB: with respect to apply2
and all other combinators, as well
as scalaz.Bind, the f
action appears to the *left*. So
f
should be the "first" F
-action to perform. This is in
accordance with all other implementations of this typeclass in
common use, which are "function first".
Flipped variant of ap
.
Flipped variant of ap
.
Alias for map
.
Alias for map
.
Add a unit to any Apply to form an Applicative.
Add a unit to any Apply to form an Applicative.
The composition of Functor F
and Bifunctor G
, [x, y]F[G[x, y]]
, is a Bifunctor
The composition of Functor F
and Bifunctor G
, [x, y]F[G[x, y]]
, is a Bifunctor
The composition of Applicatives F
and G
, [x]F[G[x]]
, is an Applicative
The composition of Applys F
and G
, [x]F[G[x]]
, is a Apply
The composition of Applys F
and G
, [x]F[G[x]]
, is a Apply
The composition of Functors F
and G
, [x]F[G[x]]
, is a Functor
The composition of Functors F
and G
, [x]F[G[x]]
, is a Functor
Filter l
according to an applicative predicate.
An Applicative
for F
in which effects happen in the opposite order.
An Applicative
for F
in which effects happen in the opposite order.
Twin all A
s in fa
.
Twin all A
s in fa
.
Pair all A
s in fa
with the result of function application.
Pair all A
s in fa
with the result of function application.
The composition of Functor F and Contravariant G, [x]F[G[x]]
,
is contravariant.
The composition of Functor F and Contravariant G, [x]F[G[x]]
,
is contravariant.
Lift f
into F
.
Lift f
into F
.
Lift f
into F
and apply to F[A]
.
Lift f
into F
and apply to F[A]
.
Lift apply(a)
, and apply the result to f
.
Lift apply(a)
, and apply the result to f
.
The product of Applicatives F
and G
, [x](F[x], G[x]])
, is an Applicative
The product of Applys F
and G
, [x](F[x], G[x]])
, is a Apply
The product of Applys F
and G
, [x](F[x], G[x]])
, is a Apply
The product of Functors F
and G
, [x](F[x], G[x]])
, is a Functor
The product of Functors F
and G
, [x](F[x], G[x]])
, is a Functor
Performs the action n
times, returning the list of results.
Performs the action n
times, returning nothing.
Inject a
to the left of B
s in f
.
Inject a
to the left of B
s in f
.
Inject b
to the right of A
s in f
.
Inject b
to the right of A
s in f
.
Returns the given argument if cond
is false
, otherwise, unit lifted into F.
Empty fa
of meaningful pure values, preserving its
structure.
Empty fa
of meaningful pure values, preserving its
structure.
Returns the given argument if cond
is true
, otherwise, unit lifted into F.
Functors are covariant by nature, so we can treat an F[A]
as
an F[B]
if A
is a subtype of B
.
Functors are covariant by nature, so we can treat an F[A]
as
an F[B]
if A
is a subtype of B
.
Converts ma
to a value of type F[B]
using the provided functions f
and g
.
Converts ma
to a value of type F[B]
using the provided functions f
and g
.
Converts ma
to a value of type F[B]
using the provided bijection.
Converts ma
to a value of type F[B]
using the provided bijection.
Converts ma
to a value of type F[B]
using the provided isomorphism.
Converts ma
to a value of type F[B]
using the provided isomorphism.
Applicative Functor, described in Applicative Programming with Effects
Whereas a scalaz.Functor allows application of a pure function to a value in a context, an Applicative also allows application of a function in a context to a value in a context (
ap
).It follows that a pure function can be applied to arguments in a context. (See
apply2
,apply3
, ... )Applicative instances come in a few flavours:
Applicative
scalaz.Applicative.ApplicativeLaw