W
- Monad kindT
- Function input typeR
- Function return type
(inside monad e.g. Kleisli[stream,String,Integer] represents a function that takes a String and returns a Stream of Integers)public class Kleisli<W,T,R> extends java.lang.Object implements Fn1<T,Higher<W,R>>, Transformable<R>, Higher3<Witness.kleisli,W,T,R>
Modifier and Type | Class and Description |
---|---|
static class |
Kleisli.Instances |
Fn1.FunctionalOperations<T1,R>
Constructor and Description |
---|
Kleisli() |
Modifier and Type | Method and Description |
---|---|
Higher<W,R> |
apply(T a) |
<A> Kleisli<W,A,R> |
compose(Kleisli<W,A,T> kleisli) |
<T2> Kleisli<W,Xor<T,T2>,R> |
fanIn(Kleisli<W,T2,R> fanIn) |
<__> Kleisli<W,org.jooq.lambda.tuple.Tuple2<T,__>,org.jooq.lambda.tuple.Tuple2<R,__>> |
firstK() |
<R1> Kleisli<W,T,R1> |
flatMap(java.util.function.Function<? super R,? extends Higher<W,? extends R1>> mapper) |
<R1> Kleisli<W,T,R1> |
flatMapK(java.util.function.Function<? super R,? extends Kleisli<W,T,R1>> mapper) |
<R1,R4> Kleisli<W,T,R4> |
forEach2(java.util.function.Function<? super R,java.util.function.Function<? super T,? extends Higher<W,? extends R1>>> value2,
java.util.function.BiFunction<? super R,? super R1,? extends R4> yieldingFunction) |
<R1,R2,R4> Kleisli<W,T,R4> |
forEach3(java.util.function.Function<? super R,java.util.function.Function<? super T,? extends Higher<W,? extends R1>>> value2,
java.util.function.BiFunction<? super R,? super R1,java.util.function.Function<? super T,? extends Higher<W,? extends R2>>> value3,
Fn3<? super R,? super R1,? super R2,? extends R4> yieldingFunction) |
<R1,R2,R3,R4> |
forEach4(java.util.function.Function<? super R,java.util.function.Function<? super T,? extends Higher<W,? extends R1>>> value2,
java.util.function.BiFunction<? super R,? super R1,java.util.function.Function<? super T,? extends Higher<W,? extends R2>>> value3,
Fn3<? super R,? super R1,? super R2,java.util.function.Function<? super T,? extends Higher<W,? extends R3>>> value4,
Fn4<? super R,? super R1,? super R2,? super R3,? extends R4> yieldingFunction) |
<R1,R4> Kleisli<W,T,R4> |
forEachK2(java.util.function.Function<? super R,? extends Kleisli<W,T,? extends R1>> value2,
java.util.function.BiFunction<? super R,? super R1,? extends R4> yieldingFunction) |
<R1,R2,R4> Kleisli<W,T,R4> |
forEachK3(java.util.function.Function<? super R,? extends Kleisli<W,T,? extends R1>> value2,
java.util.function.BiFunction<? super R,? super R1,? extends Kleisli<W,T,? extends R2>> value3,
Fn3<? super R,? super R1,? super R2,? extends R4> yieldingFunction) |
<R1,R2,R3,R4> |
forEachK4(java.util.function.Function<? super R,? extends Kleisli<W,T,? extends R1>> value2,
java.util.function.BiFunction<? super R,? super R1,? extends Kleisli<W,T,? extends R2>> value3,
Fn3<? super R,? super R1,? super R2,? extends Kleisli<W,T,? extends R3>> value4,
Fn4<? super R,? super R1,? super R2,? super R3,? extends R4> yieldingFunction) |
static <T,R,W> Kleisli<W,T,R> |
kleisliK(Monad<W> monad,
java.util.function.Function<? super T,? extends Higher<W,? extends R>> fn) |
<__> Kleisli<W,Xor<T,__>,Xor<R,__>> |
leftK(W type) |
static <T,R,W> Kleisli<W,T,R> |
lift(Monad<W> monad,
java.util.function.Function<? super T,? extends R> fn,
W type) |
Kleisli<W,T,R> |
local(java.util.function.Function<? super R,? extends R> local) |
<R1> Kleisli<W,T,R1> |
map(java.util.function.Function<? super R,? extends R1> mapper)
Transform this functor using the supplied transformation function
|
<T2,R2> Kleisli<W,Xor<T,T2>,Xor<R,R2>> |
merge(Kleisli<W,T2,R2> merge,
W type) |
static <W,T,R> Kleisli<W,T,R> |
of(Monad<W> monad,
java.util.function.Function<? super T,? extends Higher<W,? extends R>> fn) |
<__> Kleisli<W,Xor<__,T>,Xor<__,R>> |
rightK(W type) |
<__> Kleisli<W,org.jooq.lambda.tuple.Tuple2<__,T>,org.jooq.lambda.tuple.Tuple2<__,R>> |
secondK() |
<R2> Kleisli<W,T,R2> |
then(Kleisli<W,R,R2> kleisli) |
<R2> Kleisli<W,T,org.jooq.lambda.tuple.Tuple2<R,R2>> |
zip(Kleisli<W,T,R2> o) |
<R2,B> Kleisli<W,T,B> |
zip(Kleisli<W,T,R2> o,
java.util.function.BiFunction<? super R,? super R2,? extends B> fn) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
after, always, andThen, andThen, applyLazy, before, bind, compose, fanIn, firstFn, functionOps, later, leftFn, lift, lift, liftAnyM, liftF, liftNT, liftOpt, liftTry, memoize, memoize, memoizeAsync, memoizeAsync, merge, narrow, now, product, product, product, reader, rightFn, secondFn, λ, λv
cast, peek, retry, retry, trampoline
public static <W,T,R> Kleisli<W,T,R> of(Monad<W> monad, java.util.function.Function<? super T,? extends Higher<W,? extends R>> fn)
public <R1> Kleisli<W,T,R1> map(java.util.function.Function<? super R,? extends R1> mapper)
Transformable
of(1,2,3).map(i->i*2)
//[2,4,6]
map
in interface Transformable<R>
mapper
- Transformation functionpublic <R1> Kleisli<W,T,R1> flatMap(java.util.function.Function<? super R,? extends Higher<W,? extends R1>> mapper)
public <R2,B> Kleisli<W,T,B> zip(Kleisli<W,T,R2> o, java.util.function.BiFunction<? super R,? super R2,? extends B> fn)
public <R1> Kleisli<W,T,R1> flatMapK(java.util.function.Function<? super R,? extends Kleisli<W,T,R1>> mapper)
public <__> Kleisli<W,org.jooq.lambda.tuple.Tuple2<T,__>,org.jooq.lambda.tuple.Tuple2<R,__>> firstK()
public <__> Kleisli<W,org.jooq.lambda.tuple.Tuple2<__,T>,org.jooq.lambda.tuple.Tuple2<__,R>> secondK()
public <R1,R2,R3,R4> Kleisli<W,T,R4> forEach4(java.util.function.Function<? super R,java.util.function.Function<? super T,? extends Higher<W,? extends R1>>> value2, java.util.function.BiFunction<? super R,? super R1,java.util.function.Function<? super T,? extends Higher<W,? extends R2>>> value3, Fn3<? super R,? super R1,? super R2,java.util.function.Function<? super T,? extends Higher<W,? extends R3>>> value4, Fn4<? super R,? super R1,? super R2,? super R3,? extends R4> yieldingFunction)
public <R1,R2,R4> Kleisli<W,T,R4> forEach3(java.util.function.Function<? super R,java.util.function.Function<? super T,? extends Higher<W,? extends R1>>> value2, java.util.function.BiFunction<? super R,? super R1,java.util.function.Function<? super T,? extends Higher<W,? extends R2>>> value3, Fn3<? super R,? super R1,? super R2,? extends R4> yieldingFunction)
public <R1,R4> Kleisli<W,T,R4> forEach2(java.util.function.Function<? super R,java.util.function.Function<? super T,? extends Higher<W,? extends R1>>> value2, java.util.function.BiFunction<? super R,? super R1,? extends R4> yieldingFunction)
public <R1,R2,R3,R4> Kleisli<W,T,R4> forEachK4(java.util.function.Function<? super R,? extends Kleisli<W,T,? extends R1>> value2, java.util.function.BiFunction<? super R,? super R1,? extends Kleisli<W,T,? extends R2>> value3, Fn3<? super R,? super R1,? super R2,? extends Kleisli<W,T,? extends R3>> value4, Fn4<? super R,? super R1,? super R2,? super R3,? extends R4> yieldingFunction)
public <R1,R2,R4> Kleisli<W,T,R4> forEachK3(java.util.function.Function<? super R,? extends Kleisli<W,T,? extends R1>> value2, java.util.function.BiFunction<? super R,? super R1,? extends Kleisli<W,T,? extends R2>> value3, Fn3<? super R,? super R1,? super R2,? extends R4> yieldingFunction)
public <R1,R4> Kleisli<W,T,R4> forEachK2(java.util.function.Function<? super R,? extends Kleisli<W,T,? extends R1>> value2, java.util.function.BiFunction<? super R,? super R1,? extends R4> yieldingFunction)
public static <T,R,W> Kleisli<W,T,R> kleisliK(Monad<W> monad, java.util.function.Function<? super T,? extends Higher<W,? extends R>> fn)
public static <T,R,W> Kleisli<W,T,R> lift(Monad<W> monad, java.util.function.Function<? super T,? extends R> fn, W type)