¿Cómo crear un iterador finito con contenido como resultado de una expresión?

Me gustaría crear unaIterator que obtiene su siguiente elemento evaluando (repetidamente) una expresión, y quiero que la expresión pueda devolver un cierto valor para terminarla.

Lo único que he encontrado así es Iterator.continually (), que parece ser infinito. Es importante que la expresión no se evalúe hastanext() se llama en elIterator.

¿Hay alguna forma de obtener este comportamiento?

por ejemplo

def getNext = {
  // some complicated code
  val next = ... // either a STOP value or a real value to be returned by the iterator
} 

val myIter = Iterator.continually(getNext) // want this to stop at some point

Respuestas a la pregunta(2)

Su respuesta a la pregunta