T
- public interface Eval<T> extends java.util.function.Supplier<T>, MonadicValue<T>, Functor<T>, Filterable<T>, Applicativable<T>, Matchable.ValueAndOptionalMatcher<T>
Modifier and Type | Interface and Description |
---|---|
static class |
Eval.Always<T> |
static class |
Eval.Later<T> |
static class |
Eval.Now<T> |
Applicativable.Applicatives, Applicativable.SemigroupApplyer<T>
Value.ValueImpl<T>
Matchable.AsMatchable, Matchable.AutoCloseableMatchableIterable<TYPE>, Matchable.CheckValue1<T,R>, Matchable.CheckValue2<T1,T2,R>, Matchable.CheckValue3<T1,T2,T3,R>, Matchable.CheckValue4<T1,T2,T3,T4,R>, Matchable.CheckValue5<T1,T2,T3,T4,T5,R>, Matchable.CheckValueOpt<T,R>, Matchable.CheckValues<T,R>, Matchable.MatchableIterable<TYPE>, Matchable.MatchableObject<TYPE>, Matchable.MatchableOptional<T>, Matchable.MatchSelf<TYPE>, Matchable.MTuple1<T1>, Matchable.MTuple2<T1,T2>, Matchable.MTuple3<T1,T2,T3>, Matchable.MTuple4<T1,T2,T3,T4>, Matchable.MTuple5<T1,T2,T3,T4,T5>, Matchable.MXor<T1,T2>, Matchable.ValueAndOptionalMatcher<T>
Convertable.SupplierToConvertable<T>
Modifier and Type | Method and Description |
---|---|
static <T,R> Eval<R> |
accumulate(CollectionX<Eval<T>> maybes,
java.util.function.Function<? super T,R> mapper,
Semigroup<R> reducer) |
static <T,R> Eval<R> |
accumulate(CollectionX<Eval<T>> evals,
Reducer<R> reducer) |
static <T> Eval<T> |
accumulate(CollectionX<Eval<T>> maybes,
Semigroup<T> reducer) |
static <T> Eval<T> |
always(java.util.function.Supplier<T> value) |
default Eval<java.util.concurrent.CompletableFuture<T>> |
asyncAlways() |
default Eval<java.util.concurrent.CompletableFuture<T>> |
asyncAlways(java.util.concurrent.Executor ex) |
default Eval<java.util.concurrent.CompletableFuture<T>> |
asyncLater() |
default Eval<java.util.concurrent.CompletableFuture<T>> |
asyncLater(java.util.concurrent.Executor ex) |
default Eval<java.util.concurrent.CompletableFuture<T>> |
asyncNow() |
default Eval<java.util.concurrent.CompletableFuture<T>> |
asyncNow(java.util.concurrent.Executor ex) |
default <U> Eval<U> |
cast(java.lang.Class<U> type)
Cast all elements in a stream to a given type, possibly throwing a
ClassCastException . |
default Maybe<T> |
filter(java.util.function.Predicate<? super T> pred) |
default Maybe<T> |
filterNot(java.util.function.Predicate<? super T> fn) |
<R> Eval<R> |
flatMap(java.util.function.Function<? super T,? extends Eval<? extends R>> mapper) |
T |
get() |
static <T> Eval<T> |
later(java.util.function.Supplier<T> value) |
<R> Eval<R> |
map(java.util.function.Function<? super T,? extends R> mapper) |
static <R> Eval<R> |
narrow(Eval<? extends R> broad) |
default Maybe<T> |
notNull() |
static <T> Eval<T> |
now(T value) |
default <U> Maybe<U> |
ofType(java.lang.Class<U> type)
Keep only those elements in a stream that are of a given type.
|
default Eval<T> |
peek(java.util.function.Consumer<? super T> c) |
static <T> Eval<ListX<T>> |
sequence(CollectionX<Eval<T>> evals) |
default <R> Eval<R> |
trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Performs a map operation that can call a recursive method without running out of stack space
|
<T> Eval<T> |
unit(T unit) |
anyM
ap, ap, ap1, ap2, ap3, ap4, ap5
convertTo, convertToAsync, fold, fold, generate, getMatchable, iterate, mapReduce, mkString, newSubscriber, of, stream, subscribe, test, toDequeX, toEvalAlways, toEvalLater, toEvalNow, toFutureStream, toFutureStream, toIor, toLazyImmutable, toListX, toMaybe, toMutable, toPBagX, toPOrderedSetX, toPQueueX, toPSetX, toPStackX, toPVectorX, toQueueX, toSetX, toSimpleReact, toSimpleReact, toSortedSetX, toTry, toTry, toXor, unapply
foldRight, foldRight, foldRight, foldRightMapToType, join, join, join, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, reduce
from, from, from, from, from, from, from, from, from, from, fromCharSequence, fromIterable, fromOptional, listOfValues, ofDecomposable, otherwise, otherwise, then, then, when, when, when, when, when, when, when, when, when, when, whenGuard, whenTrue, whenValues
fromSupplier, iterator, orElse, orElseGet, orElseThrow, toAtomicReference, toCompletableFuture, toCompletableFutureAsync, toCompletableFutureAsync, toFutureW, toList, toOptional, toOptionalAtomicReference, toStream, visit
patternMatch
iterator, toOptional, visit
matches
static <T> Eval<T> now(T value)
static <T> Eval<T> later(java.util.function.Supplier<T> value)
static <T> Eval<T> always(java.util.function.Supplier<T> value)
static <T> Eval<ListX<T>> sequence(CollectionX<Eval<T>> evals)
static <T,R> Eval<R> accumulate(CollectionX<Eval<T>> evals, Reducer<R> reducer)
static <T,R> Eval<R> accumulate(CollectionX<Eval<T>> maybes, java.util.function.Function<? super T,R> mapper, Semigroup<R> reducer)
static <T> Eval<T> accumulate(CollectionX<Eval<T>> maybes, Semigroup<T> reducer)
<R> Eval<R> flatMap(java.util.function.Function<? super T,? extends Eval<? extends R>> mapper)
T get()
get
in interface Convertable<T>
get
in interface java.util.function.Supplier<T>
default <U> Maybe<U> ofType(java.lang.Class<U> type)
Filterable
ofType
in interface Filterable<T>
default Maybe<T> filterNot(java.util.function.Predicate<? super T> fn)
filterNot
in interface Filterable<T>
default Maybe<T> notNull()
notNull
in interface Filterable<T>
default Maybe<T> filter(java.util.function.Predicate<? super T> pred)
filter
in interface Filterable<T>
default <U> Eval<U> cast(java.lang.Class<U> type)
Functor
ClassCastException
.
// ClassCastException ReactiveSeq.of(1, "a", 2, "b", 3).cast(Integer.class)default <R> Eval<R> trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Functor
ReactiveSeq.of(10,20,30,40)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
Trampoline<Long> fibonacci(int i){
return fibonacci(i,1,0);
}
Trampoline<Long> fibonacci(int n, long a, long b) {
return n == 0 ? Trampoline.done(b) : Trampoline.more( ()->fibonacci(n-1, a+b, a));
}
55
6765
832040
102334155
ReactiveSeq.of(10_000,200_000,3_000_000,40_000_000)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
completes successfully
trampoline
in interface Functor<T>
default Eval<java.util.concurrent.CompletableFuture<T>> asyncNow(java.util.concurrent.Executor ex)
default Eval<java.util.concurrent.CompletableFuture<T>> asyncLater(java.util.concurrent.Executor ex)
default Eval<java.util.concurrent.CompletableFuture<T>> asyncAlways(java.util.concurrent.Executor ex)