public static class ApplicativeFunctor.ApplyFunctions<T>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
ApplicativeFunctor.ApplyFunctions.SemigroupApplyer<T> |
Constructor and Description |
---|
ApplyFunctions() |
Modifier and Type | Method and Description |
---|---|
ApplicativeFunctor.ApplyFunctions.SemigroupApplyer<T> |
ap(java.util.function.BiFunction<T,T,T> fn)
Apply the provided function to combine multiple different Applicatives, wrapping the same type.
|
ApplicativeFunctor.ApplyFunctions.SemigroupApplyer<T> |
ap(Semigroup<T> fn) |
<R> ApplicativeFunctor<R> |
ap1(java.util.function.Function<? super T,? extends R> fn) |
<T2,R> EagerApplicative<T2,R,?> |
ap2(java.util.function.BiFunction<? super T,? super T2,? extends R> fn)
Apply the provided function to two different Applicatives.
|
<T2,T3,R> Applicative2<T2,T3,R,?> |
ap3(TriFunction<? super T,? super T2,? super T3,? extends R> fn) |
<T2,T3,T4,R> |
ap4(QuadFunction<? super T,? super T2,? super T3,? super T4,? extends R> fn) |
<T2,T3,T4,T5,R> |
ap5(QuintFunction<? super T,? super T2,? super T3,? super T4,? super T5,? extends R> fn) |
public ApplicativeFunctor.ApplyFunctions.SemigroupApplyer<T> ap(java.util.function.BiFunction<T,T,T> fn)
Xor<String,String> fail1 = Xor.secondary("failed1");
fail1.swap().ap(Semigroups.stringConcat)
.ap(Xor.secondary("failed2").swap())
.ap(Xor.<String,String>primary("success").swap())
.
// [failed1failed2]
fn
- public ApplicativeFunctor.ApplyFunctions.SemigroupApplyer<T> ap(Semigroup<T> fn)
public <R> ApplicativeFunctor<R> ap1(java.util.function.Function<? super T,? extends R> fn)
public <T2,R> EagerApplicative<T2,R,?> ap2(java.util.function.BiFunction<? super T,? super T2,? extends R> fn)
public int add(Integer a,Integer b){
return a+b;
}
We can add two Applicative types together without unwrapping the values
Maybe.of(10).ap2(this::add).ap(Maybe.of(20))
//Maybe[30];
fn
- public <T2,T3,R> Applicative2<T2,T3,R,?> ap3(TriFunction<? super T,? super T2,? super T3,? extends R> fn)
public <T2,T3,T4,R> Applicative3<T2,T3,T4,R,?> ap4(QuadFunction<? super T,? super T2,? super T3,? super T4,? extends R> fn)
public <T2,T3,T4,T5,R> Applicative4<T2,T3,T4,T5,R,?> ap5(QuintFunction<? super T,? super T2,? super T3,? super T4,? super T5,? extends R> fn)