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) |
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, waitafter, 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, λ, λvcast, peek, retry, retry, trampolinepublic 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 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)