Interface Effect<A>
-
- Type Parameters:
A
- the argument type
- All Superinterfaces:
Applicative<IO<Unit>,Fn1<A,?>>
,Cartesian<A,IO<Unit>,Fn1<?,?>>
,Cocartesian<A,IO<Unit>,Fn1<?,?>>
,Contravariant<A,Profunctor<?,IO<Unit>,Fn1<?,?>>>
,Fn1<A,IO<Unit>>
,Functor<IO<Unit>,Fn1<A,?>>
,Monad<IO<Unit>,Fn1<A,?>>
,MonadReader<A,IO<Unit>,Fn1<A,?>>
,MonadRec<IO<Unit>,Fn1<A,?>>
,MonadWriter<A,IO<Unit>,Fn1<A,?>>
,Profunctor<A,IO<Unit>,Fn1<?,?>>
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface Effect<A> extends Fn1<A,IO<Unit>>
A function returning "no result", and therefore only useful as a side-effect.- See Also:
Fn0
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Effect<A>
andThen(Effect<A> effect)
Left-to-right composition ofEffects
.default IO<Unit>
apply(A a)
Invoke this function explosively with the given argument.IO<Unit>
checkedApply(A a)
Invoke this function with the given argument, potentially throwing anyThrowable
.default <Z> Effect<Z>
contraMap(Fn1<? super Z,? extends A> fn)
Contravariantly mapA <- B
.default <Z> Effect<Z>
diMapL(Fn1<? super Z,? extends A> fn)
Contravariantly map over the argument to this function, producing a function that takes the new argument type, and produces the same result.default <C> Effect<A>
discardR(Applicative<C,Fn1<A,?>> appB)
Sequence both thisApplicative
andappB
, discardingappB's
result and returning thisApplicative
.static <A> Effect<A>
effect(Fn1<? super A,? extends IO<?>> fn)
static <A> Effect<A>
effect(SideEffect sideEffect)
Create anEffect
from aSideEffect
;static <A> Effect<A>
fromConsumer(java.util.function.Consumer<A> consumer)
Static factory method to create anEffect
from a javaConsumer
.static <A> Effect<A>
noop()
Create anEffect
that accepts an input and does nothing;default java.util.function.Consumer<A>
toConsumer()
Convert thisEffect
to a javaConsumer
-
-
-
Method Detail
-
checkedApply
IO<Unit> checkedApply(A a) throws java.lang.Throwable
Description copied from interface:Fn1
Invoke this function with the given argument, potentially throwing anyThrowable
.- Specified by:
checkedApply
in interfaceFn1<A,IO<Unit>>
- Parameters:
a
- the argument- Returns:
- the result of the function application
- Throws:
java.lang.Throwable
- anything possibly thrown by the function
-
toConsumer
default java.util.function.Consumer<A> toConsumer()
Convert thisEffect
to a javaConsumer
- Returns:
- the
Consumer
-
diMapL
default <Z> Effect<Z> diMapL(Fn1<? super Z,? extends A> fn)
Contravariantly map over the argument to this function, producing a function that takes the new argument type, and produces the same result.- Specified by:
diMapL
in interfaceCartesian<A,IO<Unit>,Fn1<?,?>>
- Specified by:
diMapL
in interfaceCocartesian<A,IO<Unit>,Fn1<?,?>>
- Specified by:
diMapL
in interfaceFn1<A,IO<Unit>>
- Specified by:
diMapL
in interfaceProfunctor<A,IO<Unit>,Fn1<?,?>>
- Type Parameters:
Z
- the new argument type- Parameters:
fn
- the contravariant argument mapping function- Returns:
- an
Fn1
<Z, B>
-
contraMap
default <Z> Effect<Z> contraMap(Fn1<? super Z,? extends A> fn)
Contravariantly mapA <- B
.- Specified by:
contraMap
in interfaceCartesian<A,IO<Unit>,Fn1<?,?>>
- Specified by:
contraMap
in interfaceCocartesian<A,IO<Unit>,Fn1<?,?>>
- Specified by:
contraMap
in interfaceContravariant<A,Profunctor<?,IO<Unit>,Fn1<?,?>>>
- Specified by:
contraMap
in interfaceFn1<A,IO<Unit>>
- Specified by:
contraMap
in interfaceProfunctor<A,IO<Unit>,Fn1<?,?>>
- Type Parameters:
Z
- the new parameter type- Parameters:
fn
- the mapping function- Returns:
- the mapped Contravariant functor instance
-
discardR
default <C> Effect<A> discardR(Applicative<C,Fn1<A,?>> appB)
Sequence both thisApplicative
andappB
, discardingappB's
result and returning thisApplicative
. This is generally useful for sequentially performing side-effects.- Specified by:
discardR
in interfaceApplicative<IO<Unit>,Fn1<A,?>>
- Specified by:
discardR
in interfaceFn1<A,IO<Unit>>
- Specified by:
discardR
in interfaceMonad<IO<Unit>,Fn1<A,?>>
- Specified by:
discardR
in interfaceMonadReader<A,IO<Unit>,Fn1<A,?>>
- Specified by:
discardR
in interfaceMonadRec<IO<Unit>,Fn1<A,?>>
- Specified by:
discardR
in interfaceMonadWriter<A,IO<Unit>,Fn1<A,?>>
- Type Parameters:
C
- the type of appB's parameter- Parameters:
appB
- the other Applicative- Returns:
- this Applicative
-
fromConsumer
static <A> Effect<A> fromConsumer(java.util.function.Consumer<A> consumer)
Static factory method to create anEffect
from a javaConsumer
.- Type Parameters:
A
- the input type- Parameters:
consumer
- theConsumer
- Returns:
- the
Effect
-
effect
static <A> Effect<A> effect(SideEffect sideEffect)
Create anEffect
from aSideEffect
;- Type Parameters:
A
- any desired input type- Parameters:
sideEffect
- theSideEffect
- Returns:
- the
Effect
-
noop
static <A> Effect<A> noop()
Create anEffect
that accepts an input and does nothing;- Type Parameters:
A
- any desired input type- Returns:
- the noop
Effect
-
-