Uses of Class
com.jnape.palatable.lambda.functions.recursion.RecursiveResult
-
-
Uses of RecursiveResult in com.jnape.palatable.lambda.adt
Method parameters in com.jnape.palatable.lambda.adt with type arguments of type RecursiveResult Modifier and Type Method Description <B> Either<L,B>
Either. trampolineM(Fn1<? super R,? extends MonadRec<RecursiveResult<R,B>,Either<L,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> Maybe<B>
Maybe. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Maybe<?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<C> These<A,C>
These. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,These<A,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> Try<B>
Try. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Try<?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.adt.choice
Method parameters in com.jnape.palatable.lambda.adt.choice with type arguments of type RecursiveResult Modifier and Type Method Description <C> Choice2<A,C>
Choice2. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Choice2<A,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<D> Choice3<A,B,D>
Choice3. trampolineM(Fn1<? super C,? extends MonadRec<RecursiveResult<C,D>,Choice3<A,B,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<E> Choice4<A,B,C,E>
Choice4. trampolineM(Fn1<? super D,? extends MonadRec<RecursiveResult<D,E>,Choice4<A,B,C,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<F> Choice5<A,B,C,D,F>
Choice5. trampolineM(Fn1<? super E,? extends MonadRec<RecursiveResult<E,F>,Choice5<A,B,C,D,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<G> Choice6<A,B,C,D,E,G>
Choice6. trampolineM(Fn1<? super F,? extends MonadRec<RecursiveResult<F,G>,Choice6<A,B,C,D,E,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<H> Choice7<A,B,C,D,E,F,H>
Choice7. trampolineM(Fn1<? super G,? extends MonadRec<RecursiveResult<G,H>,Choice7<A,B,C,D,E,F,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<I> Choice8<A,B,C,D,E,F,G,I>
Choice8. trampolineM(Fn1<? super H,? extends MonadRec<RecursiveResult<H,I>,Choice8<A,B,C,D,E,F,G,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.adt.hlist
Method parameters in com.jnape.palatable.lambda.adt.hlist with type arguments of type RecursiveResult Modifier and Type Method Description <_1Prime> SingletonHList<_1Prime>
SingletonHList. trampolineM(Fn1<? super _1,? extends MonadRec<RecursiveResult<_1,_1Prime>,SingletonHList<?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<_2Prime> Tuple2<_1,_2Prime>
Tuple2. trampolineM(Fn1<? super _2,? extends MonadRec<RecursiveResult<_2,_2Prime>,Tuple2<_1,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<_3Prime> Tuple3<_1,_2,_3Prime>
Tuple3. trampolineM(Fn1<? super _3,? extends MonadRec<RecursiveResult<_3,_3Prime>,Tuple3<_1,_2,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<_4Prime> Tuple4<_1,_2,_3,_4Prime>
Tuple4. trampolineM(Fn1<? super _4,? extends MonadRec<RecursiveResult<_4,_4Prime>,Tuple4<_1,_2,_3,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<_5Prime> Tuple5<_1,_2,_3,_4,_5Prime>
Tuple5. trampolineM(Fn1<? super _5,? extends MonadRec<RecursiveResult<_5,_5Prime>,Tuple5<_1,_2,_3,_4,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<_6Prime> Tuple6<_1,_2,_3,_4,_5,_6Prime>
Tuple6. trampolineM(Fn1<? super _6,? extends MonadRec<RecursiveResult<_6,_6Prime>,Tuple6<_1,_2,_3,_4,_5,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<_7Prime> Tuple7<_1,_2,_3,_4,_5,_6,_7Prime>
Tuple7. trampolineM(Fn1<? super _7,? extends MonadRec<RecursiveResult<_7,_7Prime>,Tuple7<_1,_2,_3,_4,_5,_6,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<_8Prime> Tuple8<_1,_2,_3,_4,_5,_6,_7,_8Prime>
Tuple8. trampolineM(Fn1<? super _8,? extends MonadRec<RecursiveResult<_8,_8Prime>,Tuple8<_1,_2,_3,_4,_5,_6,_7,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.functions
Method parameters in com.jnape.palatable.lambda.functions with type arguments of type RecursiveResult Modifier and Type Method Description default <C> Fn1<A,C>
Fn1. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Fn1<A,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.functions.recursion
Subclasses of RecursiveResult in com.jnape.palatable.lambda.functions.recursion Modifier and Type Class Description (package private) static class
RecursiveResult.Recurse<A,B>
(package private) static class
RecursiveResult.Terminate<A,B>
Methods in com.jnape.palatable.lambda.functions.recursion with type parameters of type RecursiveResult Modifier and Type Method Description <C,App extends Applicative<?,App>,TravB extends Traversable<C,RecursiveResult<A,?>>,AppTrav extends Applicative<TravB,App>>
AppTravRecursiveResult. traverse(Fn1<? super B,? extends Applicative<C,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)
Applyfn
to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.Methods in com.jnape.palatable.lambda.functions.recursion that return RecursiveResult Modifier and Type Method Description <C,D>
RecursiveResult<C,D>RecursiveResult. biMap(Fn1<? super A,? extends C> lFn, Fn1<? super B,? extends D> rFn)
Dually map covariantly over both the left and right parameters.<C> RecursiveResult<C,B>
RecursiveResult. biMapL(Fn1<? super A,? extends C> fn)
Covariantly map over the left parameter.<C> RecursiveResult<A,C>
RecursiveResult. biMapR(Fn1<? super B,? extends C> fn)
Covariantly map over the right parameter.<C> RecursiveResult<A,C>
RecursiveResult. discardL(Applicative<C,RecursiveResult<A,?>> appB)
Sequence both thisApplicative
andappB
, discarding thisApplicative's
result and returningappB
.<C> RecursiveResult<A,B>
RecursiveResult. discardR(Applicative<C,RecursiveResult<A,?>> appB)
Sequence both thisApplicative
andappB
, discardingappB's
result and returning thisApplicative
.<C> RecursiveResult<A,C>
RecursiveResult. flatMap(Fn1<? super B,? extends Monad<C,RecursiveResult<A,?>>> f)
Chain dependent computations that may continue or short-circuit based on previous results.<C> RecursiveResult<A,C>
RecursiveResult. fmap(Fn1<? super B,? extends C> fn)
Covariantly transmute this functor's parameter using the given mapping function.RecursiveResult<B,A>
RecursiveResult. invert()
Swap the type parameters.<C> RecursiveResult<A,C>
RecursiveResult. pure(C c)
Lift the valueb
into this applicative functor.static <A,B>
RecursiveResult<A,B>RecursiveResult. recurse(A a)
Static factory method for creating a "recurse" value.static <A,B>
RecursiveResult<A,B>RecursiveResult. terminate(B b)
Static factory method for creating a "terminate" value.<C> RecursiveResult<A,C>
RecursiveResult. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,RecursiveResult<A,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<C> RecursiveResult<A,C>
RecursiveResult. zip(Applicative<Fn1<? super B,? extends C>,RecursiveResult<A,?>> appFn)
Given another instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.Methods in com.jnape.palatable.lambda.functions.recursion that return types with arguments of type RecursiveResult Modifier and Type Method Description static <A> Pure<RecursiveResult<A,?>>
RecursiveResult. pureRecursiveResult()
The canonicalPure
instance forRecursiveResult
.Method parameters in com.jnape.palatable.lambda.functions.recursion with type arguments of type RecursiveResult Modifier and Type Method Description B
Trampoline. checkedApply(Fn1<? super A,? extends RecursiveResult<A,B>> fn, A a)
<C> RecursiveResult<A,C>
RecursiveResult. discardL(Applicative<C,RecursiveResult<A,?>> appB)
Sequence both thisApplicative
andappB
, discarding thisApplicative's
result and returningappB
.<C> RecursiveResult<A,B>
RecursiveResult. discardR(Applicative<C,RecursiveResult<A,?>> appB)
Sequence both thisApplicative
andappB
, discardingappB's
result and returning thisApplicative
.<C> RecursiveResult<A,C>
RecursiveResult. flatMap(Fn1<? super B,? extends Monad<C,RecursiveResult<A,?>>> f)
Chain dependent computations that may continue or short-circuit based on previous results.static <A,B>
Fn1<A,B>Trampoline. trampoline(Fn1<? super A,? extends RecursiveResult<A,B>> fn)
static <A,B>
BTrampoline. trampoline(Fn1<? super A,? extends RecursiveResult<A,B>> fn, A a)
<C> RecursiveResult<A,C>
RecursiveResult. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,RecursiveResult<A,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<C> RecursiveResult<A,C>
RecursiveResult. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,RecursiveResult<A,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<C> RecursiveResult<A,C>
RecursiveResult. zip(Applicative<Fn1<? super B,? extends C>,RecursiveResult<A,?>> appFn)
Given another instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports. -
Uses of RecursiveResult in com.jnape.palatable.lambda.functor.builtin
Method parameters in com.jnape.palatable.lambda.functor.builtin with type arguments of type RecursiveResult Modifier and Type Method Description <C> Const<A,C>
Const. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Const<A,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> Identity<B>
Identity. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Identity<?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> Lazy<B>
Lazy. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Lazy<?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<U> Market<A,B,S,U>
Market. trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Market<A,B,S,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> State<S,B>
State. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,State<S,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<C> Tagged<S,C>
Tagged. trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Tagged<S,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> Writer<W,B>
Writer. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Writer<W,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.internal.iteration
Fields in com.jnape.palatable.lambda.internal.iteration with type parameters of type RecursiveResult Modifier and Type Field Description private Fn1<? super A,? extends java.lang.Iterable<RecursiveResult<A,B>>>
TrampoliningIterator. fn
private ImmutableQueue<java.util.Iterator<RecursiveResult<A,B>>>
TrampoliningIterator. remaining
Constructor parameters in com.jnape.palatable.lambda.internal.iteration with type arguments of type RecursiveResult Constructor Description TrampoliningIterator(Fn1<? super A,? extends java.lang.Iterable<RecursiveResult<A,B>>> fn, A a)
-
Uses of RecursiveResult in com.jnape.palatable.lambda.io
Method parameters in com.jnape.palatable.lambda.io with type arguments of type RecursiveResult Modifier and Type Method Description <B> IO<B>
IO. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,IO<?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.monad
Methods in com.jnape.palatable.lambda.monad that return types with arguments of type RecursiveResult Modifier and Type Method Description private <Z> Fn1<SafeT.Body.Suspended<M,?,Z>,RecursiveResult<SafeT.Body<M,B>,Either<MonadRec<SafeT.Body<M,B>,M>,B>>>
SafeT.Body.Suspended. associateRight(Fn1<Z,SafeT.Body<M,B>> f)
Method parameters in com.jnape.palatable.lambda.monad with type arguments of type RecursiveResult Modifier and Type Method Description <B> MonadRec<B,M>
MonadRec. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,M>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> SafeT<M,B>
SafeT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,SafeT<M,?>>> bounce)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.monad.transformer.builtin
Method parameters in com.jnape.palatable.lambda.monad.transformer.builtin with type arguments of type RecursiveResult Modifier and Type Method Description <B,MB extends MonadRec<B,M>>
MBIterateT. foldCut(Fn2<? super B,? super A,? extends MonadRec<RecursiveResult<B,B>,M>> fn, MonadRec<B,M> acc)
Monolithically fold the spine of thisIterateT
(with the possibility of early termination) bytrampolining
the underlying effects (for iterative folding, usetrampolineM
directly).<R2> EitherT<M,L,R2>
EitherT. trampolineM(Fn1<? super R,? extends MonadRec<RecursiveResult<R,R2>,EitherT<M,L,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> IdentityT<M,B>
IdentityT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,IdentityT<M,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> IterateT<M,B>
IterateT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,IterateT<M,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> LazyT<M,B>
LazyT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,LazyT<M,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> MaybeT<M,B>
MaybeT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,MaybeT<M,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> ReaderT<R,M,B>
ReaderT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,ReaderT<R,M,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> StateT<S,M,B>
StateT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,StateT<S,M,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.<B> WriterT<W,M,B>
WriterT. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,WriterT<W,M,?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.optics
Method parameters in com.jnape.palatable.lambda.optics with type arguments of type RecursiveResult Modifier and Type Method Description default <U> Iso<S,U,A,B>
Iso. trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Iso<S,?,A,B>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.default <U> Lens<S,U,A,B>
Lens. trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Lens<S,?,A,B>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.default <U> Prism<S,U,A,B>
Prism. trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Prism<S,?,A,B>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction. -
Uses of RecursiveResult in com.jnape.palatable.lambda.traversable
Method parameters in com.jnape.palatable.lambda.traversable with type arguments of type RecursiveResult Modifier and Type Method Description <B> LambdaIterable<B>
LambdaIterable. trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,LambdaIterable<?>>> fn)
Given some operation yielding aRecursiveResult
inside thisMonadRec
, internally trampoline the operation until it yields atermination
instruction.
-