T
- public interface Eval<T> extends java.util.function.Supplier<T>, Value<T>, Functor<T>, Filterable<T>, Applicativable<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.CheckValues<T,R>, Matchable.MatchableIterable<TYPE>, Matchable.MatchableTuple1<T1>, Matchable.MatchableTuple2<TYPE,T1 extends TYPE,T2 extends TYPE>, Matchable.MatchableTuple3<TYPE,T1 extends TYPE,T2 extends TYPE,T3 extends TYPE>, Matchable.MatchableTuple4<TYPE,T1 extends TYPE,T2 extends TYPE,T3 extends TYPE,T4 extends TYPE>, Matchable.MatchableTuple5<TYPE,T1 extends TYPE,T2 extends TYPE,T3 extends TYPE,T4 extends TYPE,T5 extends TYPE>, 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>
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> |
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 Functor<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) |
ap, ap, ap1, ap2, ap3, ap4, ap5
convertTo, convertToAsync, fold, fold, generate, iterate, mkString, toDequeX, toEvalAlways, toEvalLater, toEvalNow, toFutureStream, toFutureStream, toIor, toIorSecondary, toLazyImmutable, toListX, toMaybe, toMutable, toPBagX, toPOrderedSetX, toPQueueX, toPSetX, toPStackX, toPVectorX, toQueueX, toSetX, toSimpleReact, toSimpleReact, toSortedSetX, toTry, toTry, toXor, toXorSecondary, unapply
foldRight, foldRight, foldRightMapToType, join, join, join, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce
from, from, from, from, from, from, from, from, from, from, fromCharSequence, fromIterable, fromOptional, fromValue, listOfValues, matches, mayMatch, ofDecomposable, ofIterable, otherwise, otherwise, then, then, when, when, when, when, when, when, when, when, when, when, when, when, when, when, when, whenGuard
fromSupplier, orElse, orElseGet, orElseThrow, toAtomicReference, toCompletableFuture, toCompletableFutureAsync, toCompletableFutureAsync, toFutureW, toList, toOptional, toOptionalAtomicReference, toStream, visit
patternMatch
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)
<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)