¿Iteratees en Scala que utilizan la evaluación perezosa o la fusión?

He oído que los iterate son perezosos, pero que perezososexactamente ¿son ellos? Alternativamente, ¿se pueden fusionar las iteraciones con una función de posprocesamiento, de modo que no sea necesario construir una estructura de datos intermedia?

¿Puedo en mi iteratee, por ejemplo, construir un artículo de 1 millónStream[Option[String]] a partir de unajava.io.BufferedReadery, posteriormente, filtrar elNones, de forma compositiva, sin requerir que todo el Stream se mantenga en la memoria? ¿Y al mismo tiempo garantizo que no voy a volar la pila? O algo así, no tiene que usar unStream.

Actualmente estoy usando Scalaz 6, pero si otras implementaciones iterativas son capaces de hacer esto de una mejor manera, me interesaría saberlo.

Por favor proporcione una solución completa, incluyendo el cierre de laBufferedReader y llamandounsafePerformIO, si es aplicable.

Respuestas a la pregunta(2)

Su respuesta a la pregunta