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 private
TrampolineEval()
-
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()
A
value()
Evaluates the computation and return its result.
-
-
-
Method Detail
-
trampoline
protected abstract Trampoline<A> trampoline()
-
value
public final A value()
Description copied from class:Eval
Evaluates 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:Eval
Transforms the current instance into a trampoline instance.- Specified by:
asTrampoline
in classEval<A>
-
-