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 thisApplicativeandappB, discardingappB'sresult and returning thisApplicative.static <A> Effect<A>effect(Fn1<? super A,? extends IO<?>> fn)static <A> Effect<A>effect(SideEffect sideEffect)Create anEffectfrom aSideEffect;static <A> Effect<A>fromConsumer(java.util.function.Consumer<A> consumer)Static factory method to create anEffectfrom a javaConsumer.static <A> Effect<A>noop()Create anEffectthat accepts an input and does nothing;default java.util.function.Consumer<A>toConsumer()Convert thisEffectto a javaConsumer
-
-
-
Method Detail
-
checkedApply
IO<Unit> checkedApply(A a) throws java.lang.Throwable
Description copied from interface:Fn1Invoke this function with the given argument, potentially throwing anyThrowable.- Specified by:
checkedApplyin 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 thisEffectto 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:
diMapLin interfaceCartesian<A,IO<Unit>,Fn1<?,?>>- Specified by:
diMapLin interfaceCocartesian<A,IO<Unit>,Fn1<?,?>>- Specified by:
diMapLin interfaceFn1<A,IO<Unit>>- Specified by:
diMapLin 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:
contraMapin interfaceCartesian<A,IO<Unit>,Fn1<?,?>>- Specified by:
contraMapin interfaceCocartesian<A,IO<Unit>,Fn1<?,?>>- Specified by:
contraMapin interfaceContravariant<A,Profunctor<?,IO<Unit>,Fn1<?,?>>>- Specified by:
contraMapin interfaceFn1<A,IO<Unit>>- Specified by:
contraMapin 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 thisApplicativeandappB, discardingappB'sresult and returning thisApplicative. This is generally useful for sequentially performing side-effects.- Specified by:
discardRin interfaceApplicative<IO<Unit>,Fn1<A,?>>- Specified by:
discardRin interfaceFn1<A,IO<Unit>>- Specified by:
discardRin interfaceMonad<IO<Unit>,Fn1<A,?>>- Specified by:
discardRin interfaceMonadReader<A,IO<Unit>,Fn1<A,?>>- Specified by:
discardRin interfaceMonadRec<IO<Unit>,Fn1<A,?>>- Specified by:
discardRin 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 anEffectfrom a javaConsumer.- Type Parameters:
A- the input type- Parameters:
consumer- theConsumer- Returns:
- the
Effect
-
effect
static <A> Effect<A> effect(SideEffect sideEffect)
Create anEffectfrom aSideEffect;- Type Parameters:
A- any desired input type- Parameters:
sideEffect- theSideEffect- Returns:
- the
Effect
-
noop
static <A> Effect<A> noop()
Create anEffectthat accepts an input and does nothing;- Type Parameters:
A- any desired input type- Returns:
- the noop
Effect
-
-