Interface Fn3<A,B,C,D>
- Type Parameters:
A
- The first argument typeB
- The second argument typeC
- The third argument typeD
- The return type
- All Superinterfaces:
Applicative<Fn1<B,
,Fn1<C, D>>, Fn1<A, ?>> Cartesian<A,
,Fn1<B, Fn1<C, D>>, Fn1<?, ?>> Cocartesian<A,
,Fn1<B, Fn1<C, D>>, Fn1<?, ?>> Contravariant<A,
,Profunctor<?, Fn1<B, Fn1<C, D>>, Fn1<?, ?>>> Fn1<A,
,Fn1<B, Fn1<C, D>>> Fn2<A,
,B, Fn1<C, D>> Functor<Fn1<B,
,Fn1<C, D>>, Fn1<A, ?>> Monad<Fn1<B,
,Fn1<C, D>>, Fn1<A, ?>> MonadReader<A,
,Fn1<B, Fn1<C, D>>, Fn1<A, ?>> MonadRec<Fn1<B,
,Fn1<C, D>>, Fn1<A, ?>> MonadWriter<A,
,Fn1<B, Fn1<C, D>>, Fn1<A, ?>> Profunctor<A,
Fn1<B, Fn1<C, D>>, Fn1<?, ?>>
- All Known Subinterfaces:
BiMonoidFactory<A,
,B, C> BiSemigroupFactory<A,
,B, C> Fn4<A,
,B, C, D, E> Fn5<A,
,B, C, D, E, F> Fn6<A,
,B, C, D, E, F, G> Fn7<A,
,B, C, D, E, F, G, H> Fn8<A,
,B, C, D, E, F, G, H, I> MonoidFactory<A,
,B> SemigroupFactory<A,
B>
- All Known Implementing Classes:
Absent
,AddAll
,Between
,Both
,Bracket
,Clamp
,CmpEqBy
,CmpEqWith
,Collapse
,Collapse
,Compare
,Compose
,Compose
,EndoK
,FoldLeft
,FoldRight
,GTBy
,GTEBy
,GTEWith
,GTWith
,IfThenElse
,LeftAll
,LeftAll
,LeftAny
,LeftAny
,LiftA2
,LiftA3
,LiftA4
,LiftA5
,LiftA6
,LiftA7
,LTBy
,LTEBy
,LTEWith
,LTWith
,MaxBy
,MaxWith
,Merge
,Merge
,MergeMaps
,MinBy
,MinWith
,Over
,Peek2
,Present
,RateLimit
,RightAll
,RightAll
,RightAny
,RightAny
,RunAll
,RunAll
,ScanLeft
,Set
,Times
,Under
,ZipWith
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
A function taking three arguments. Defined in terms of
Fn2
, so similarly auto-curried.- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionPartially apply this function by taking its first argument.Partially apply this function by taking its first two arguments.default D
Invoke this function with the given arguments.checkedApply
(A a, B b) checkedApply
(A a, B b, C c) Right-to-left composition between different arity functions.Contravariantly mapA <- B
.Contravariantly map over the argument to this function, producing a function that takes the new argument type, and produces the same result.discardR
(Applicative<E, Fn1<A, ?>> appB) Sequence both thisApplicative
andappB
, discardingappB's
result and returning thisApplicative
.flip()
Flip the order of the first two arguments.static <A,
B, C, D>
Fn3<A, B, C, D> static <A,
B, C, D>
Fn3<A, B, C, D> static <A,
B, C, D>
Fn3<A, B, C, D> Static factory method for coercing a lambda to anFn3
.uncurry()
widen()
Widen this function's argument list by prepending an ignored argument of any type to the front.Methods inherited from interface com.jnape.palatable.lambda.functions.Fn1
andThen, carry, cartesian, censor, choose, cocartesian, diMap, diMapR, discardL, flatMap, fmap, lazyZip, listens, local, pure, self, thunk, toFunction, trampolineM, zip, zip
Methods inherited from interface com.jnape.palatable.lambda.functions.Fn2
checkedApply, toBiFunction
-
Method Details
-
checkedApply
- Throws:
Throwable
-
apply
Invoke this function with the given arguments.- Parameters:
a
- the first argumentb
- the second argumentc
- the third argument- Returns:
- the result of the function application
-
checkedApply
-
widen
Widen this function's argument list by prepending an ignored argument of any type to the front. -
apply
Partially apply this function by taking its first argument. -
apply
Partially apply this function by taking its first two arguments. -
flip
Flip the order of the first two arguments. -
uncurry
-
discardR
Description copied from interface:Fn2
Sequence both thisApplicative
andappB
, discardingappB's
result and returning thisApplicative
. This is generally useful for sequentially performing side-effects.- Specified by:
discardR
in interfaceApplicative<A,
B> - Specified by:
discardR
in interfaceFn1<A,
B> - Specified by:
discardR
in interfaceFn2<A,
B, C> - Specified by:
discardR
in interfaceMonad<A,
B> - Specified by:
discardR
in interfaceMonadReader<A,
B, C> - Specified by:
discardR
in interfaceMonadRec<A,
B> - Specified by:
discardR
in interfaceMonadWriter<A,
B, C> - Type Parameters:
E
- the type of appB's parameter- Parameters:
appB
- the other Applicative- Returns:
- this Applicative
-
diMapL
Description copied from interface:Fn2
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,
B, C> - Specified by:
diMapL
in interfaceCocartesian<A,
B, C> - Specified by:
diMapL
in interfaceFn1<A,
B> - Specified by:
diMapL
in interfaceFn2<A,
B, C> - Specified by:
diMapL
in interfaceProfunctor<A,
B, C> - Type Parameters:
Z
- the new argument type- Parameters:
fn
- the contravariant argument mapping function- Returns:
- an
Fn1
<Z, B>
-
contraMap
Description copied from interface:Fn2
Contravariantly mapA <- B
.- Specified by:
contraMap
in interfaceCartesian<A,
B, C> - Specified by:
contraMap
in interfaceCocartesian<A,
B, C> - Specified by:
contraMap
in interfaceContravariant<A,
B> - Specified by:
contraMap
in interfaceFn1<A,
B> - Specified by:
contraMap
in interfaceFn2<A,
B, C> - Specified by:
contraMap
in interfaceProfunctor<A,
B, C> - Type Parameters:
Z
- the new parameter type- Parameters:
fn
- the mapping function- Returns:
- the mapped Contravariant functor instance
-
compose
Description copied from interface:Fn2
Right-to-left composition between different arity functions. Preserves highest arity in the return type.- Specified by:
compose
in interfaceFn1<A,
B> - Specified by:
compose
in interfaceFn2<A,
B, C> - Type Parameters:
Y
- the resulting function's first argument typeZ
- the resulting function's second argument type- Parameters:
before
- the function to pass its return value to this function's input- Returns:
- an
Fn2
<Y, Z, B>
-
fn3
- Type Parameters:
A
- the first input argument typeB
- the second input argument typeC
- the third input argument typeD
- the output type- Parameters:
curriedFn1
- the curried fn1 to adapt- Returns:
- the
Fn3
-
fn3
- Type Parameters:
A
- the first input argument typeB
- the second input argument typeC
- the third input argument typeD
- the output type- Parameters:
curriedFn2
- the curried fn2 to adapt- Returns:
- the
Fn3
-
fn3
Static factory method for coercing a lambda to anFn3
.- Type Parameters:
A
- the first input argument typeB
- the second input argument typeC
- the third input argument typeD
- the output type- Parameters:
fn
- the lambda to coerce- Returns:
- the
Fn3
-