scala input stream scala-2.8 lazy-evaluation

scala - Flujo de líneas de lectura



input stream (2)

Ver el ejemplo en Stream . Tenga en cuenta que el thunk perezoso está en la cola, no en la cabeza . Cada vez que se invoca el thunk, debe devolver los siguientes contras (incluido el siguiente thunk, que a su vez debería proporcionar los siguientes contras, incluido ...)

Aquí está la firma de Stream.cons: < http://www.scala-lang.org/docu/files/api/scala/collection/immutable/Stream $$ cons $ .html>. Tenga en cuenta el thunk (=> Stream) como el segundo argumento para apply .

Estoy intentando crear una secuencia infinita de cadenas de llamadas de readLine:

import java.io.{BufferedReader, InputStreamReader} val in = new BufferedReader(new InputStreamReader(System in)) val input: Stream[String] = Stream.cons(in readLine, input)

Pero parece que la llamada a readLine no se está llamando perezosamente. Inmediatamente después de ingresar ese código, readLine espera la entrada, luego Stream se convierte en una lista infinita de esa misma entrada. ¿Es posible lograr lo que tengo en mente?


import java.io.{BufferedReader, InputStreamReader} val in = new BufferedReader(new InputStreamReader(System in)) val input = Stream.continually(in readLine)