A
- The first argument typeB
- The second argument typeC
- The third argument typeD
- The return type@FunctionalInterface public interface Fn3<A,B,C,D> extends Fn2<A,B,Fn1<C,D>>
Fn2
, so similarly auto-curried.Fn2
Modifier and Type | Method and Description |
---|---|
default Fn2<B,C,D> |
apply(A a)
Partially apply this function by taking its first argument.
|
default Fn1<C,D> |
apply(A a,
B b)
Partially apply this function by taking its first two arguments.
|
default D |
apply(A a,
B b,
C c)
Invoke this function with the given arguments.
|
default Fn1<C,D> |
checkedApply(A a,
B b) |
D |
checkedApply(A a,
B b,
C c) |
default <Y,Z> Fn4<Y,Z,B,C,D> |
compose(Fn2<? super Y,? super Z,? extends A> before)
Right-to-left composition between different arity functions.
|
default <Z> Fn3<Z,B,C,D> |
contraMap(Fn1<? super Z,? extends A> fn)
Contravariantly map
A <- B . |
default <Z> Fn3<Z,B,C,D> |
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 <E> Fn3<A,B,C,D> |
discardR(Applicative<E,Fn1<A,?>> appB)
Sequence both this
Applicative and appB , discarding appB's result and
returning this Applicative . |
default Fn3<B,A,C,D> |
flip()
Flip the order of the first two arguments.
|
static <A,B,C,D> Fn3<A,B,C,D> |
fn3(Fn1<A,Fn2<B,C,D>> curriedFn1)
|
static <A,B,C,D> Fn3<A,B,C,D> |
fn3(Fn2<A,B,Fn1<C,D>> curriedFn2)
|
static <A,B,C,D> Fn3<A,B,C,D> |
fn3(Fn3<A,B,C,D> fn)
Static factory method for coercing a lambda to an
Fn3 . |
default Fn2<? super Product2<? extends A,? extends B>,C,D> |
uncurry()
|
default <Z> Fn4<Z,A,B,C,D> |
widen()
Widen this function's argument list by prepending an ignored argument of any type to the front.
|
checkedApply, curried, curry, fn2, fromBiFunction, toBiFunction
default D apply(A a, B b, C c)
a
- the first argumentb
- the second argumentc
- the third argumentdefault <Z> Fn4<Z,A,B,C,D> widen()
default Fn1<C,D> apply(A a, B b)
default <E> Fn3<A,B,C,D> discardR(Applicative<E,Fn1<A,?>> appB)
Fn2
Applicative
and appB
, discarding appB's
result and
returning this Applicative
. This is generally useful for sequentially performing side-effects.discardR
in interface Applicative<Fn1<B,Fn1<C,D>>,Fn1<A,?>>
discardR
in interface Fn1<A,Fn1<B,Fn1<C,D>>>
discardR
in interface Fn2<A,B,Fn1<C,D>>
discardR
in interface Monad<Fn1<B,Fn1<C,D>>,Fn1<A,?>>
discardR
in interface MonadReader<A,Fn1<B,Fn1<C,D>>,Fn1<A,?>>
discardR
in interface MonadRec<Fn1<B,Fn1<C,D>>,Fn1<A,?>>
discardR
in interface MonadWriter<A,Fn1<B,Fn1<C,D>>,Fn1<A,?>>
E
- the type of appB's parameterappB
- the other Applicativedefault <Z> Fn3<Z,B,C,D> diMapL(Fn1<? super Z,? extends A> fn)
Fn2
diMapL
in interface Cartesian<A,Fn1<B,Fn1<C,D>>,Fn1<?,?>>
diMapL
in interface Cocartesian<A,Fn1<B,Fn1<C,D>>,Fn1<?,?>>
diMapL
in interface Fn1<A,Fn1<B,Fn1<C,D>>>
diMapL
in interface Fn2<A,B,Fn1<C,D>>
diMapL
in interface Profunctor<A,Fn1<B,Fn1<C,D>>,Fn1<?,?>>
Z
- the new argument typefn
- the contravariant argument mapping functionFn1
<Z, B>default <Z> Fn3<Z,B,C,D> contraMap(Fn1<? super Z,? extends A> fn)
Fn2
A <- B
.contraMap
in interface Cartesian<A,Fn1<B,Fn1<C,D>>,Fn1<?,?>>
contraMap
in interface Cocartesian<A,Fn1<B,Fn1<C,D>>,Fn1<?,?>>
contraMap
in interface Contravariant<A,Profunctor<?,Fn1<B,Fn1<C,D>>,Fn1<?,?>>>
contraMap
in interface Fn1<A,Fn1<B,Fn1<C,D>>>
contraMap
in interface Fn2<A,B,Fn1<C,D>>
contraMap
in interface Profunctor<A,Fn1<B,Fn1<C,D>>,Fn1<?,?>>
Z
- the new parameter typefn
- the mapping functiondefault <Y,Z> Fn4<Y,Z,B,C,D> compose(Fn2<? super Y,? super Z,? extends A> before)
Fn2
compose
in interface Fn1<A,Fn1<B,Fn1<C,D>>>
compose
in interface Fn2<A,B,Fn1<C,D>>
Y
- the resulting function's first argument typeZ
- the resulting function's second argument typebefore
- the function to pass its return value to this function's inputFn2
<Y, Z, B>static <A,B,C,D> Fn3<A,B,C,D> fn3(Fn1<A,Fn2<B,C,D>> curriedFn1)
A
- the first input argument typeB
- the second input argument typeC
- the third input argument typeD
- the output typecurriedFn1
- the curried fn1 to adaptFn3
static <A,B,C,D> Fn3<A,B,C,D> fn3(Fn2<A,B,Fn1<C,D>> curriedFn2)
A
- the first input argument typeB
- the second input argument typeC
- the third input argument typeD
- the output typecurriedFn2
- the curried fn2 to adaptFn3
static <A,B,C,D> Fn3<A,B,C,D> fn3(Fn3<A,B,C,D> fn)
Fn3
.A
- the first input argument typeB
- the second input argument typeC
- the third input argument typeD
- the output typefn
- the lambda to coerceFn3