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 java.lang.Object implements Fn3<Fn2<? super A,? super B,? extends C>,Applicative<A,App>,Applicative<B,App>,AppC>
Lift into and apply anFn2
to twoApplicative
values, returning the result inside the sameApplicative
context. Functionally equivalent toappB.zip(appA.fmap(fn))
.- See Also:
Applicative.zip(Applicative)
-
-
Constructor Summary
Constructors Modifier Constructor Description private
LiftA2()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AppC
checkedApply(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>liftA2(Fn2<? super A,? super B,? extends C> fn)
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 Detail
-
INSTANCE
private static final LiftA2<?,?,?,?,?> INSTANCE
-
-
Method Detail
-
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,C,App extends Applicative<?,App>,AppC extends Applicative<C,App>> LiftA2<A,B,C,App,AppC> liftA2()
-
liftA2
public static <A,B,C,App extends Applicative<?,App>,AppC extends Applicative<C,App>> Fn2<Applicative<A,App>,Applicative<B,App>,AppC> liftA2(Fn2<? super A,? super B,? extends C> fn)
-
liftA2
public 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)
-
liftA2
public static <A,B,C,App extends Applicative<?,App>,AppC extends Applicative<C,App>> AppC liftA2(Fn2<? super A,? super B,? extends C> fn, Applicative<A,App> appA, Applicative<B,App> appB)
-
-