Package fj.data
Class Eval.TrampolineEval<A>
- java.lang.Object
-
- fj.data.Eval<A>
-
- fj.data.Eval.TrampolineEval<A>
-
- Direct Known Subclasses:
Eval.BindTrampolineEval,Eval.DeferEval,Eval.PureTrampolineEval
private abstract static class Eval.TrampolineEval<A> extends Eval<A>
A helper abstraction that allows to perform recursive lazy transformations in O(1) stack space.
-
-
Constructor Summary
Constructors Modifier Constructor Description privateTrampolineEval()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) Eval.TrampolineEval<A>asTrampoline()Transforms the current instance into a trampoline instance.protected abstract Trampoline<A>trampoline()Avalue()Evaluates the computation and return its result.
-
-
-
Method Detail
-
trampoline
protected abstract Trampoline<A> trampoline()
-
value
public final A value()
Description copied from class:EvalEvaluates the computation and return its result. Depending on whether the current instance is lazy or eager the computation may or may not happen at this point.
-
asTrampoline
final Eval.TrampolineEval<A> asTrampoline()
Description copied from class:EvalTransforms the current instance into a trampoline instance.- Specified by:
asTrampolinein classEval<A>
-
-