T
- type data wrapped by the underlying monadpublic interface AnyM2<W extends WitnessType<W>,T,T2> extends AnyM<W,T>, Unwrapable, EmptyUnit<T>, Unit<T>, Folds<T>, Transformable<T>, ToStream<T>, Zippable<T>, org.reactivestreams.Publisher<T>
AnyMValue
and @see AnyMSeq
.
AnyMValue is used to represent Monads that wrap a single value such as Optional
, CompletableFuture
, Maybe
, Eval
, Xor
, Try
, Ior
, FeatureToggle
AnyMSeq is used to represent Monads that wrap an aggregation of values such as Stream
, FutureStream
, List
, Set
, Streamable
Use AnyM to create your monad wrapper.
AnyM.fromXXXX methods can create the appropriate AnyM type for a range of known monad types.
AnyMValue<optional,String> monad1 = AnyM.fromOptional(Optional.of("hello"));
AnyMSeq<stream,String> monad2 = AnyM.fromStream(Stream.of("hello","world"));
Wrapped monads can be unwrapped via the unwrap method, or converted to the desired type via toXXXX methodsAnyM.AnyMFactory
Modifier and Type | Method and Description |
---|---|
FunctionalAdapter<W> |
adapter() |
default AnyM2<W,java.util.List<T>,T2> |
aggregate(AnyM2<W,T,T2> next)
Aggregate the contents of this Monad and the supplied Monad
|
static <W extends WitnessType<W>,T,T2,R> |
ap(AnyM2<W,java.util.function.Function<T,R>,T2> fn)
Applicative 'ap' method to use fluently
|
static <W extends WitnessType<W>,T,T2,R,T3> |
ap2(AnyM2<W,java.util.function.Function<T,java.util.function.Function<T2,R>>,T3> fn)
Applicative ap2 method toNested use fluently toNested apply toNested a curried function
|
default <R> AnyM2<W,R,T2> |
coflatMapA(java.util.function.Function<? super AnyM<W,T>,R> mapper) |
default <R,A> R |
collect(java.util.stream.Collector<? super T,A,R> collector)
Collect the contents of the monad wrapped by this AnyM into supplied collector
A mutable reduction operation equivalent to Stream#collect
|
default <T> AnyM2<W,T,T2> |
empty()
Construct an AnyM wrapping a new empty instance of the wrapped type
e.g.
|
default <T> Unit<T> |
emptyUnit() |
default boolean |
eqv(AnyM2<?,T,T2> t)
Tests for equivalency between two AnyM types
|
default AnyM2<W,T,T2> |
filter(java.util.function.Predicate<? super T> fn)
Perform a filter operation on the wrapped monad instance e.g.
|
default <R> AnyM2<W,R,T2> |
flatMapA(java.util.function.Function<? super T,? extends AnyM<W,? extends R>> fn) |
<R> AnyM2<W,R,T2> |
flatMapI(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> fn) |
<R> AnyM2<W,R,T2> |
flatMapP(java.util.function.Function<? super T,? extends org.reactivestreams.Publisher<? extends R>> fn) |
<R> AnyM2<W,R,T2> |
flatMapS(java.util.function.Function<? super T,? extends java.util.stream.Stream<? extends R>> fn) |
static <W extends WitnessType<W>,T1,T2> |
flatten(AnyM2<W,? extends AnyM2<W,T1,T2>,T2> nested)
join / flatten one level of a nested hierarchy
|
static <W extends WitnessType<W>,T1,T2> |
flattenI(AnyM2<W,? extends java.lang.Iterable<T1>,T2> nested) |
default <T> AnyM2<W,T,T2> |
fromIterable(java.lang.Iterable<T> t) |
default java.util.Iterator<T> |
iterator() |
static <W extends WitnessType<W>,U,R> |
liftF(java.util.function.Function<? super U,? extends R> fn)
Lift a function so it accepts an AnyM and returns an AnyM (any monad)
AnyM view simplifies type related challenges.
|
static <W extends WitnessType<W>,U1,U2,R> |
liftF2(java.util.function.BiFunction<? super U1,? super U2,? extends R> fn)
Lift a function so it accepts a Monad and returns a Monad (simplex view of a wrapped Monad)
AnyM view simplifies type related challenges.
|
static <W extends WitnessType<W>,U1,U2,R,T2> |
liftF2(java.util.function.Function<U1,java.util.function.Function<U2,R>> fn)
Lift a Curried Function into Monadic form
|
static <W extends WitnessType<W>,U1,U2,U3,R,T2> |
liftF3(java.util.function.Function<? super U1,java.util.function.Function<? super U2,java.util.function.Function<? super U3,? extends R>>> fn)
Lift a Curried Function into Monadic form
|
static <W extends WitnessType<W>,U1,U2,U3,R,T2> |
liftF3(org.jooq.lambda.function.Function3<? super U1,? super U2,? super U3,? extends R> fn)
Lift a TriFunction into Monadic form.
|
static <W extends WitnessType<W>,U1,U2,U3,U4,R,T2> |
liftF4(java.util.function.Function<? super U1,java.util.function.Function<? super U2,java.util.function.Function<? super U3,java.util.function.Function<? super U4,? extends R>>>> fn)
Lift a Curried Function into Monadic form
|
static <W extends WitnessType<W>,U1,U2,U3,U4,R,T2> |
liftF4(org.jooq.lambda.function.Function4<? super U1,? super U2,? super U3,? super U4,? extends R> fn)
Lift a QuadFunction into Monadic form.
|
static <W extends WitnessType<W>,U1,U2,U3,U4,U5,R,T2> |
liftF5(java.util.function.Function<? super U1,java.util.function.Function<? super U2,java.util.function.Function<? super U3,java.util.function.Function<? super U4,java.util.function.Function<? super U5,? extends R>>>>> fn)
Lift a Curried Function
(5 levels a->b->c->d->e->fn.apply(a,b,c,d,e) ) into Monadic form |
static <W extends WitnessType<W>,U1,U2,U3,U4,U5,R,T2> |
liftF5(org.jooq.lambda.function.Function5<? super U1,? super U2,? super U3,? super U4,? super U5,? extends R> fn)
Lift a jOOλ Function5 (5 parameters) into Monadic form
|
default FutureT<W,T> |
liftMFuture() |
default FutureT<W,T> |
liftMFuture(java.util.function.Function<? super T,? extends Future<T>> lift) |
default ListT<W,T> |
liftMList(java.util.function.Function<? super T,? extends IndexedSequenceX<T>> lift) |
default ListT<W,T> |
liftMListX() |
default <R> AnyM2<W,R,T2> |
map(java.util.function.Function<? super T,? extends R> fn)
Transform this functor using the supplied transformation function
|
Xor<AnyMValue<W,T>,AnyMSeq<W,T>> |
matchable()
Allows structural matching on the value / seq nature of this AnyM.
|
static <W extends WitnessType<W>,T,T2> |
narrow(AnyM2<W,? extends T,? extends T2> anyM) |
default AnyM2<W,AnyM<W,T>,T2> |
nestA() |
default AnyM2<W,T,T2> |
peek(java.util.function.Consumer<? super T> c)
Perform a peek operation on the wrapped monad e.g.
|
default ReactiveSeq<T> |
reactiveSeq() |
default <R> AnyM2<W,R,T2> |
retry(java.util.function.Function<? super T,? extends R> fn)
Retry a transformation if it fails.
|
default <R> AnyM2<W,R,T2> |
retry(java.util.function.Function<? super T,? extends R> fn,
int retries,
long delay,
java.util.concurrent.TimeUnit timeUnit)
Retry a transformation if it fails.
|
static <W extends WitnessType<W>,T1,T2> |
sequence(java.util.Collection<? extends AnyM2<W,T1,T2>> seq,
W w)
Convert a Collection of Monads to a Monad with a List
|
static <W extends WitnessType<W>,T,T2> |
sequence(java.util.stream.Stream<? extends AnyM2<W,T,T2>> stream,
W witness) |
default ReactiveSeq<T> |
stream() |
default <R> R |
to2(java.util.function.Function<? super AnyM2<W,T,T2>,? extends R> reduce)
Fluent api for type conversion
|
java.lang.String |
toString() |
static <W extends WitnessType<W>,T,R,T2> |
traverse(java.util.Collection<? extends AnyM2<W,T,T2>> seq,
java.util.function.Function<? super T,? extends R> fn,
W w)
Convert a Collection of Monads to a Monad with a List applying the supplied function in the process
|
static <W extends WitnessType<W>,T,R,T2> |
traverse(java.util.function.Function<T,R> fn,
java.util.stream.Stream<AnyM2<W,T,T2>> stream,
W witness) |
default <T> AnyM2<W,T,T2> |
unit(T t)
Construct a new instanceof AnyM using the type of the underlying wrapped monad
|
default <U> AnyMSeq<W,U> |
unitIterator(java.util.Iterator<U> U) |
default <S,U> AnyM2<W,org.jooq.lambda.tuple.Tuple3<T,S,U>,T2> |
zip3(java.lang.Iterable<? extends S> second,
java.lang.Iterable<? extends U> third)
zip 3 Streams into one
|
default <S,U,R> AnyM2<W,R,T2> |
zip3(java.lang.Iterable<? extends S> second,
java.lang.Iterable<? extends U> third,
Fn3<? super T,? super S,? super U,? extends R> fn3) |
default <T2,T3,T4> AnyM2<W,org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>,T2> |
zip4(java.lang.Iterable<? extends T2> second,
java.lang.Iterable<? extends T3> third,
java.lang.Iterable<? extends T4> fourth)
zip 4 Streams into 1
|
default <T2,T3,T4,R> |
zip4(java.lang.Iterable<? extends T2> second,
java.lang.Iterable<? extends T3> third,
java.lang.Iterable<? extends T4> fourth,
Fn4<? super T,? super T2,? super T3,? super T4,? extends R> fn) |
default <U> AnyM2<W,org.jooq.lambda.tuple.Tuple2<T,U>,T2> |
zipP(org.reactivestreams.Publisher<? extends U> other) |
default <R> AnyM2<W,R,T2> |
zipWith(java.lang.Iterable<java.util.function.Function<? super T,? extends R>> fn) |
default <R> AnyM2<W,R,T2> |
zipWithP(org.reactivestreams.Publisher<java.util.function.Function<? super T,? extends R>> fn) |
default <R> AnyM2<W,R,T2> |
zipWithS(java.util.stream.Stream<java.util.function.Function<? super T,? extends R>> fn) |
aggregate, ap, ap2, eqv, flatten, flattenI, fromArray, fromBagX, fromCollectionX, fromCompletableFuture, fromDeque, fromDoubleStream, fromEither, fromEither3, fromEither4, fromEither5, fromEval, fromFuture, fromFutureStream, fromIntStream, fromIor, fromLinkedListX, fromList, fromLongStream, fromMaybe, fromMonadicValue, fromOptional, fromOptionalDouble, fromOptionalInt, fromOptionalLong, fromOrderedSetX, fromPersistentQueueX, fromPersistentSetX, fromPublisher, fromQueue, fromRange, fromRangeLong, fromSet, fromSortedSet, fromStream, fromStream, fromStream, fromStreamable, fromTry, fromVectorX, fromXor, liftF3, liftF4, liftF5, listFromCompletableFuture, listFromEither, listFromEither3, listFromEither4, listFromEither5, listFromEval, listFromFuture, listFromIor, listFromMaybe, listFromOptional, listFromStream, listFromStreamable, listFromXor, listOf, narrow, ofNullable, ofSeq, ofValue, ofValue, sequence, sequence, streamOf, traverse, traverse
unwrap, unwrapIfInstance, unwrapNested
endsWith, endsWithIterable, findAny, findFirst, firstValue, foldLeft, foldLeft, foldLeft, foldLeft, foldRight, foldRight, foldRight, foldRightMapToType, get, groupBy, join, join, join, mapReduce, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, reduce, schedule, scheduleFixedDelay, scheduleFixedRate, single, single, singleOptional, startsWith, startsWithIterable, xMatch
futureStream, getStreamable, isEmpty, jdkStream, reveresedJDKStream, reveresedStream
cast, trampoline
default ReactiveSeq<T> reactiveSeq()
reactiveSeq
in interface AnyM<W extends WitnessType<W>,T>
reactiveSeq
in interface ConvertableToReactiveSeq<T>
reactiveSeq
in interface ToStream<T>
default <R,A> R collect(java.util.stream.Collector<? super T,A,R> collector)
AnyM<Integer> monad1 = AnyM.fromStream(Stream.of(1,2,3));
AnyM<Integer> monad2 = AnyM.fromOptional(Optional.of(1));
List<Integer> list1 = monad1.collect(CyclopsCollectors.toList());
List<Integer> list2 = monad2.collect(CyclopsCollectors.toList());
default java.util.Iterator<T> iterator()
default <U> AnyMSeq<W,U> unitIterator(java.util.Iterator<U> U)
unitIterator
in interface AnyM<W extends WitnessType<W>,T>
<R> AnyM2<W,R,T2> flatMapI(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> fn)
<R> AnyM2<W,R,T2> flatMapP(java.util.function.Function<? super T,? extends org.reactivestreams.Publisher<? extends R>> fn)
<R> AnyM2<W,R,T2> flatMapS(java.util.function.Function<? super T,? extends java.util.stream.Stream<? extends R>> fn)
default <R> AnyM2<W,R,T2> flatMapA(java.util.function.Function<? super T,? extends AnyM<W,? extends R>> fn)
default <R> AnyM2<W,R,T2> map(java.util.function.Function<? super T,? extends R> fn)
Transformable
of(1,2,3).map(i->i*2)
//[2,4,6]
map
in interface AnyM<W extends WitnessType<W>,T>
map
in interface Transformable<T>
fn
- Transformation functiondefault <T> AnyM2<W,T,T2> fromIterable(java.lang.Iterable<T> t)
fromIterable
in interface AnyM<W extends WitnessType<W>,T>
default <R> AnyM2<W,R,T2> zipWith(java.lang.Iterable<java.util.function.Function<? super T,? extends R>> fn)
default <R> AnyM2<W,R,T2> zipWithS(java.util.stream.Stream<java.util.function.Function<? super T,? extends R>> fn)
default <R> AnyM2<W,R,T2> zipWithP(org.reactivestreams.Publisher<java.util.function.Function<? super T,? extends R>> fn)
default <R> AnyM2<W,R,T2> retry(java.util.function.Function<? super T,? extends R> fn)
Transformable
given(serviceMock.apply(anyInt())).willThrow(
new RuntimeException(new SocketException("First")),
new RuntimeException(new IOException("Second"))).willReturn(
"42");
String result = ReactiveSeq.of( 1, 2, 3)
.retry(serviceMock)
.firstValue();
//result = 42
retry
in interface AnyM<W extends WitnessType<W>,T>
retry
in interface Transformable<T>
fn
- Function toNested retry if failsdefault <U> AnyM2<W,org.jooq.lambda.tuple.Tuple2<T,U>,T2> zipP(org.reactivestreams.Publisher<? extends U> other)
default <R> AnyM2<W,R,T2> retry(java.util.function.Function<? super T,? extends R> fn, int retries, long delay, java.util.concurrent.TimeUnit timeUnit)
Transformable
given(serviceMock.apply(anyInt())).willThrow(
new RuntimeException(new SocketException("First")),
new RuntimeException(new IOException("Second"))).willReturn(
"42");
String result = ReactiveSeq.of( 1, 2, 3)
.retry(serviceMock, 7, 2, TimeUnit.SECONDS)
.firstValue();
//result = 42
retry
in interface AnyM<W extends WitnessType<W>,T>
retry
in interface Transformable<T>
fn
- Function toNested retry if failsretries
- Number of retriesdelay
- Delay in TimeUnitstimeUnit
- TimeUnit toNested use for delaydefault <S,U> AnyM2<W,org.jooq.lambda.tuple.Tuple3<T,S,U>,T2> zip3(java.lang.Iterable<? extends S> second, java.lang.Iterable<? extends U> third)
Zippable
List<Tuple3<Integer, Integer, Character>> list = of(1, 2, 3, 4, 5, 6).zip3(of(100, 200, 300, 400), of('a', 'b', 'c')).collect(CyclopsCollectors.toList());
// [[1,100,'a'],[2,200,'b'],[3,300,'c']]
default <S,U,R> AnyM2<W,R,T2> zip3(java.lang.Iterable<? extends S> second, java.lang.Iterable<? extends U> third, Fn3<? super T,? super S,? super U,? extends R> fn3)
default <T2,T3,T4> AnyM2<W,org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>,T2> zip4(java.lang.Iterable<? extends T2> second, java.lang.Iterable<? extends T3> third, java.lang.Iterable<? extends T4> fourth)
Zippable
List<Tuple4<Integer, Integer, Character, String>> list = of(1, 2, 3, 4, 5, 6).zip4(of(100, 200, 300, 400), of('a', 'b', 'c'), of("hello", "world"))
.collect(CyclopsCollectors.toList());
// [[1,100,'a',"hello"],[2,200,'b',"world"]]
default <T2,T3,T4,R> AnyM2<W,R,T2> zip4(java.lang.Iterable<? extends T2> second, java.lang.Iterable<? extends T3> third, java.lang.Iterable<? extends T4> fourth, Fn4<? super T,? super T2,? super T3,? super T4,? extends R> fn)
default <T> AnyM2<W,T,T2> unit(T t)
AnyM<Integer> ints = AnyM.fromList(Arrays.asList(1,2,3);
AnyM<String> string = ints.unit("hello");
static <W extends WitnessType<W>,T,T2,R> java.util.function.Function<AnyM2<W,T,T2>,AnyM2<W,R,T2>> ap(AnyM2<W,java.util.function.Function<T,R>,T2> fn)
AnyM<optional,Function<Integer,Integer>> add = AnyM.fromNullable(this::add2);
add.to(AnyM::ap)
.apply(AnyM.ofNullable(10));
//AnyM[12] //add 2
fn
- Function inside an Applicativestatic <W extends WitnessType<W>,T,T2,R,T3> java.util.function.BiFunction<AnyM2<W,T,T3>,AnyM2<W,T2,T3>,AnyM2<W,R,T3>> ap2(AnyM2<W,java.util.function.Function<T,java.util.function.Function<T2,R>>,T3> fn)
AnyM<optional,Function<Integer,Function<Integer,Integer>>> add = AnyM.fromNullable(Curry.curry2(this::add));
add.to(AnyM::ap2)
.apply(AnyM.ofNullable(10),AnyM.ofNullable(20));
//AnyM[30] //add together
fn
- Curried function inside an Applicativedefault AnyM2<W,T,T2> filter(java.util.function.Predicate<? super T> fn)
AnyM.fromOptional(Optional.of(10)).filter(i->i<10);
//AnyM[Optional.empty()]
AnyM.fromStream(Stream.of(5,10)).filter(i->i<10);
//AnyM[Stream[5]]
default <R> AnyM2<W,R,T2> coflatMapA(java.util.function.Function<? super AnyM<W,T>,R> mapper)
coflatMapA
in interface AnyM<W extends WitnessType<W>,T>
default <T> Unit<T> emptyUnit()
default boolean eqv(AnyM2<?,T,T2> t)
boolean eqv = AnyM.fromOptional(Optional.of(1)).eqv(AnyM.fromStream(Stream.of(1)));
//true
boolean eqv = AnyM.fromOptional(Optional.of(1)).eqv(AnyM.fromStream(Stream.of(1,2)));
//false
t
- AnyM to check for equivalence with this AnyMXor<AnyMValue<W,T>,AnyMSeq<W,T>> matchable()
AnyM<String> monad;
monad.matchable().visit(v->handleValue(v.get()),s->handleSequence(s.toList()));
default ReactiveSeq<T> stream()
default AnyM2<W,T,T2> peek(java.util.function.Consumer<? super T> c)
AnyM.fromCompletableFuture(CompletableFuture.supplyAsync(()->loadData())
.peek(System.out::println)
peek
in interface AnyM<W extends WitnessType<W>,T>
peek
in interface Transformable<T>
c
- Consumer to accept current datastatic <W extends WitnessType<W>,T1,T2> AnyM2<W,T1,T2> flatten(AnyM2<W,? extends AnyM2<W,T1,T2>,T2> nested)
static <W extends WitnessType<W>,T1,T2> AnyM2<W,T1,T2> flattenI(AnyM2<W,? extends java.lang.Iterable<T1>,T2> nested)
default AnyM2<W,java.util.List<T>,T2> aggregate(AnyM2<W,T,T2> next)
AnyM.fromStream(Stream.of(1,2,3,4))
.aggregate(fromEither5(Optional.of(5)))
AnyM[Stream[List[1,2,3,4,5]]
List<Integer> result = AnyM.fromStream(Stream.of(1,2,3,4))
.aggregate(fromEither5(Optional.of(5)))
.toSequence()
.flatten()
.toList();
assertThat(result,equalTo(Arrays.asList(1,2,3,4,5)));
next
- Monad to aggregate content withdefault <T> AnyM2<W,T,T2> empty()
Any<Integer> ints = AnyM.fromStream(Stream.of(1,2,3));
AnyM<Integer> empty=ints.empty();
java.lang.String toString()
static <W extends WitnessType<W>,T1,T2> AnyM2<W,ListX<T1>,T2> sequence(java.util.Collection<? extends AnyM2<W,T1,T2>> seq, W w)
List<CompletableFuture<Integer>> futures = createFutures();
AnyM<List<Integer>> futureList = AnyMonads.sequence(AsAnyMList.anyMList(futures));
//where AnyM wraps CompletableFuture<List<Integer>>
seq
- Collection of monads to convertstatic <W extends WitnessType<W>,T,R,T2> AnyM2<W,ListX<R>,T2> traverse(java.util.Collection<? extends AnyM2<W,T,T2>> seq, java.util.function.Function<? super T,? extends R> fn, W w)
List<CompletableFuture<Integer>> futures = createFutures();
AnyM<List<String>> futureList = AnyMonads.traverse(AsAnyMList.anyMList(futures), (Integer i) -> "hello" +i);
seq
- Collection of Monadsfn
- Function to applystatic <W extends WitnessType<W>,T,T2> AnyM2<W,java.util.stream.Stream<T>,T2> sequence(java.util.stream.Stream<? extends AnyM2<W,T,T2>> stream, W witness)
static <W extends WitnessType<W>,T,R,T2> AnyM2<W,java.util.stream.Stream<R>,T2> traverse(java.util.function.Function<T,R> fn, java.util.stream.Stream<AnyM2<W,T,T2>> stream, W witness)
FunctionalAdapter<W> adapter()
static <W extends WitnessType<W>,T,T2> AnyM2<W,T,T2> narrow(AnyM2<W,? extends T,? extends T2> anyM)
static <W extends WitnessType<W>,U,R> AnyMFn1<W,U,R> liftF(java.util.function.Function<? super U,? extends R> fn)
static <W extends WitnessType<W>,U1,U2,R> AnyMFn2<W,U1,U2,R> liftF2(java.util.function.BiFunction<? super U1,? super U2,? extends R> fn)
BiFunction<AnyM<Integer>,AnyM<Integer>,AnyM<Integer>> add = Monads.liftF2(this::add);
Optional<Integer> result = add.apply(getBase(),getIncrease());
private Integer add(Integer a, Integer b){
return a+b;
}
The add method has no null handling, but we can lift the method toNested Monadic form, and use Optionals toNested automatically handle null / empty value cases.static <W extends WitnessType<W>,U1,U2,U3,R,T2> Fn3<AnyM2<W,U1,T2>,AnyM2<W,U2,T2>,AnyM2<W,U3,T2>,AnyM2<W,R,T2>> liftF3(org.jooq.lambda.function.Function3<? super U1,? super U2,? super U3,? extends R> fn)
TriFunction<AnyM<Double>,AnyM<Entity>,AnyM<W,String>,AnyM<Integer>> fn = liftF3(this::myMethod);
Now we can execute the Method with Streams, Optional, Futures, Try's etc to transparently inject iteration, null handling, async execution and / or error handlingfn
- Function to liftstatic <W extends WitnessType<W>,U1,U2,U3,U4,R,T2> Fn4<AnyM2<W,U1,T2>,AnyM2<W,U2,T2>,AnyM2<W,U3,T2>,AnyM2<W,U4,T2>,AnyM2<W,R,T2>> liftF4(org.jooq.lambda.function.Function4<? super U1,? super U2,? super U3,? super U4,? extends R> fn)
fn
- Quad funciton to liftstatic <W extends WitnessType<W>,U1,U2,U3,U4,U5,R,T2> Fn5<AnyM2<W,U1,T2>,AnyM2<W,U2,T2>,AnyM2<W,U3,T2>,AnyM2<W,U4,T2>,AnyM2<W,U5,T2>,AnyM2<W,R,T2>> liftF5(org.jooq.lambda.function.Function5<? super U1,? super U2,? super U3,? super U4,? super U5,? extends R> fn)
fn
- Function to liftstatic <W extends WitnessType<W>,U1,U2,R,T2> java.util.function.Function<AnyM2<W,U1,T2>,java.util.function.Function<AnyM2<W,U2,T2>,AnyM2<W,R,T2>>> liftF2(java.util.function.Function<U1,java.util.function.Function<U2,R>> fn)
static <W extends WitnessType<W>,U1,U2,U3,R,T2> java.util.function.Function<AnyM2<W,U1,T2>,java.util.function.Function<AnyM2<W,U2,T2>,java.util.function.Function<AnyM2<W,U3,T2>,AnyM2<W,R,T2>>>> liftF3(java.util.function.Function<? super U1,java.util.function.Function<? super U2,java.util.function.Function<? super U3,? extends R>>> fn)
static <W extends WitnessType<W>,U1,U2,U3,U4,R,T2> java.util.function.Function<AnyM2<W,U1,T2>,java.util.function.Function<AnyM2<W,U2,T2>,java.util.function.Function<AnyM2<W,U3,T2>,java.util.function.Function<AnyM2<W,U4,T2>,AnyM2<W,R,T2>>>>> liftF4(java.util.function.Function<? super U1,java.util.function.Function<? super U2,java.util.function.Function<? super U3,java.util.function.Function<? super U4,? extends R>>>> fn)
static <W extends WitnessType<W>,U1,U2,U3,U4,U5,R,T2> java.util.function.Function<AnyM2<W,U1,T2>,java.util.function.Function<AnyM2<W,U2,T2>,java.util.function.Function<AnyM2<W,U3,T2>,java.util.function.Function<AnyM2<W,U4,T2>,java.util.function.Function<AnyM2<W,U5,T2>,AnyM2<W,R,T2>>>>>> liftF5(java.util.function.Function<? super U1,java.util.function.Function<? super U2,java.util.function.Function<? super U3,java.util.function.Function<? super U4,java.util.function.Function<? super U5,? extends R>>>>> fn)
(5 levels a->b->c->d->e->fn.apply(a,b,c,d,e) )
into Monadic formdefault FutureT<W,T> liftMFuture(java.util.function.Function<? super T,? extends Future<T>> lift)
liftMFuture
in interface AnyM<W extends WitnessType<W>,T>
default ListT<W,T> liftMList(java.util.function.Function<? super T,? extends IndexedSequenceX<T>> lift)
default FutureT<W,T> liftMFuture()
liftMFuture
in interface AnyM<W extends WitnessType<W>,T>
default ListT<W,T> liftMListX()
liftMListX
in interface AnyM<W extends WitnessType<W>,T>