Domanda

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;
}
È stato utile?

Soluzione

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top