Question

Something as simple

class Thunk[+A](body: => A) {
  lazy val result: A = body;
}

Is it defined somewhere?

Or perhaps a slightly more sohpisticated

class Thunk[+A](body: => A) {
  private[this] var evaluatedInternal = false;

  lazy val result: A = {
    evaluatedInternal = true;
    body;
  }

  def evaluated: Boolean = evaluatedInternal;
}
Was it helpful?

Solution

There are classes Name and Need in Scala that provide just that functionality. See also Scalaz Issue #427.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top