Class LiftA2<A,B,C,App extends Applicative<?,App>,AppC extends Applicative<C,App>>
java.lang.Object
com.jnape.palatable.lambda.functions.builtin.fn3.LiftA2<A,B,C,App,AppC>
- Type Parameters:
A
- the function's first argument typeB
- the function's second argument typeC
- the function's return typeApp
- the applicative witnessAppC
- the inferred applicative return type
- All Implemented Interfaces:
Fn1<Fn2<? super A,
,? super B, ? extends C>, Fn1<Applicative<A, App>, Fn1<Applicative<B, App>, AppC>>> Fn2<Fn2<? super A,
,? super B, ? extends C>, Applicative<A, App>, Fn1<Applicative<B, App>, AppC>> Fn3<Fn2<? super A,
,? super B, ? extends C>, Applicative<A, App>, Applicative<B, App>, AppC> Applicative<Fn1<Applicative<A,
,App>, Fn1<Applicative<B, App>, AppC>>, Fn1<Fn2<? super A, ? super B, ? extends C>, ?>> Cartesian<Fn2<? super A,
,? super B, ? extends C>, Fn1<Applicative<A, App>, Fn1<Applicative<B, App>, AppC>>, Fn1<?, ?>> Cocartesian<Fn2<? super A,
,? super B, ? extends C>, Fn1<Applicative<A, App>, Fn1<Applicative<B, App>, AppC>>, Fn1<?, ?>> Contravariant<Fn2<? super A,
,? super B, ? extends C>, Profunctor<?, Fn1<Applicative<A, App>, Fn1<Applicative<B, App>, AppC>>, Fn1<?, ?>>> Functor<Fn1<Applicative<A,
,App>, Fn1<Applicative<B, App>, AppC>>, Fn1<Fn2<? super A, ? super B, ? extends C>, ?>> Profunctor<Fn2<? super A,
,? super B, ? extends C>, Fn1<Applicative<A, App>, Fn1<Applicative<B, App>, AppC>>, Fn1<?, ?>> Monad<Fn1<Applicative<A,
,App>, Fn1<Applicative<B, App>, AppC>>, Fn1<Fn2<? super A, ? super B, ? extends C>, ?>> MonadReader<Fn2<? super A,
,? super B, ? extends C>, Fn1<Applicative<A, App>, Fn1<Applicative<B, App>, AppC>>, Fn1<Fn2<? super A, ? super B, ? extends C>, ?>> MonadRec<Fn1<Applicative<A,
,App>, Fn1<Applicative<B, App>, AppC>>, Fn1<Fn2<? super A, ? super B, ? extends C>, ?>> MonadWriter<Fn2<? super A,
? super B, ? extends C>, Fn1<Applicative<A, App>, Fn1<Applicative<B, App>, AppC>>, Fn1<Fn2<? super A, ? super B, ? extends C>, ?>>
public final class LiftA2<A,B,C,App extends Applicative<?,App>,AppC extends Applicative<C,App>>
extends Object
implements Fn3<Fn2<? super A,? super B,? extends C>,Applicative<A,App>,Applicative<B,App>,AppC>
Lift into and apply an
Fn2
to two Applicative
values, returning the result inside the same
Applicative
context. Functionally equivalent to appB.zip(appA.fmap(fn))
.- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncheckedApply
(Fn2<? super A, ? super B, ? extends C> fn, Applicative<A, App> appA, Applicative<B, App> appB) static <A,
B, C, App extends Applicative<?, App>, AppC extends Applicative<C, App>>
LiftA2<A, B, C, App, AppC> liftA2()
static <A,
B, C, App extends Applicative<?, App>, AppC extends Applicative<C, App>>
Fn2<Applicative<A, App>, Applicative<B, App>, AppC> static <A,
B, C, App extends Applicative<?, App>, AppC extends Applicative<C, App>>
Fn1<Applicative<B, App>, AppC> liftA2
(Fn2<? super A, ? super B, ? extends C> fn, Applicative<A, App> appA) static <A,
B, C, App extends Applicative<?, App>, AppC extends Applicative<C, App>>
AppCliftA2
(Fn2<? super A, ? super B, ? extends C> fn, Applicative<A, App> appA, Applicative<B, App> appB) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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
-
Field Details
-
INSTANCE
-
-
Constructor Details
-
LiftA2
private LiftA2()
-
-
Method Details
-
checkedApply
public AppC checkedApply(Fn2<? super A, ? super B, ? extends C> fn, Applicative<A, App> appA, Applicative<B, App> appB) - Specified by:
checkedApply
in interfaceFn3<A,
B, C, App extends Applicative<?, App>>
-
liftA2
public static <A,B, LiftA2<A,C, App extends Applicative<?, App>, AppC extends Applicative<C, App>> B, liftA2()C, App, AppC> -
liftA2
public static <A,B, Fn2<Applicative<A,C, App extends Applicative<?, App>, AppC extends Applicative<C, App>> App>, liftA2Applicative<B, App>, AppC> (Fn2<? super A, ? super B, ? extends C> fn) -
liftA2
public static <A,B, Fn1<Applicative<B,C, App extends Applicative<?, App>, AppC extends Applicative<C, App>> App>, liftA2AppC> (Fn2<? super A, ? super B, ? extends C> fn, Applicative<A, App> appA) -
liftA2
public static <A,B, AppC liftA2C, App extends Applicative<?, App>, AppC extends Applicative<C, App>> (Fn2<? super A, ? super B, ? extends C> fn, Applicative<A, App> appA, Applicative<B, App> appB)
-