Defer
Defer is a type of Eval[A] that is used to defer computations which produce Eval[A].
Users should not instantiate Defer instances themselves. Instead, they will be automatically created when needed.
Attributes
- Source
- Eval.scala
- Graph
-
- Supertypes
Members list
Value members
Concrete methods
Ensure that the result of the computation (if any) will be memoized.
Ensure that the result of the computation (if any) will be memoized.
Practically, this means that when called on an Always[A] a Later[A] with an equivalent computation will be returned.
Attributes
- Source
- Eval.scala
Evaluate the computation and return an A value.
Evaluate the computation and return an A value.
For lazy instances (Later, Always), any necessary computation will be performed at this point. For eager instances (Now), a value will be immediately returned.
Attributes
- Source
- Eval.scala
Inherited methods
Lazily perform a computation based on an Eval[A], using the function f
to produce an Eval[B] given an A.
Lazily perform a computation based on an Eval[A], using the function f
to produce an Eval[B] given an A.
This call is stack-safe -- many .flatMap calls may be chained without consumed additional stack during evaluation. It is also written to avoid left-association problems, so that repeated calls to .flatMap will be efficiently applied.
Computation performed in f is always lazy, even when called on an eager (Now) instance.
Attributes
- Inherited from:
- Eval
- Source
- Eval.scala
Transform an Eval[A] into an Eval[B] given the transformation function f
.
Transform an Eval[A] into an Eval[B] given the transformation function f
.
This call is stack-safe -- many .map calls may be chained without consumed additional stack during evaluation.
Computation performed in f is always lazy, even when called on an eager (Now) instance.
Attributes
- Inherited from:
- Eval
- Source
- Eval.scala
Concrete fields
Attributes
- Source
- Eval.scala