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
Enclosing class:
Eval<A>

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 Details

    • TrampolineEval

      private TrampolineEval()
  • Method Details

    • 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.
      Specified by:
      value in class Eval<A>
      Returns:
      a result of this computation.
    • asTrampoline

      final Eval.TrampolineEval<A> asTrampoline()
      Description copied from class: Eval
      Transforms the current instance into a trampoline instance.
      Specified by:
      asTrampoline in class Eval<A>