Colecciones Scala - Stream

Scala Stream es una lista especial con función de evaluación diferida. En Scala Stream, los elementos se evalúan solo cuando son necesarios. Stream admite cálculos perezosos y es un experto en rendimiento.

Declaración de variables de flujo

La siguiente es la sintaxis para declarar una variable Stream.

Sintaxis

val stream = 1 #:: 2 #:: 3 #:: Stream.empty

Aquí, el flujo se declara como un flujo de números. Aquí 1 es la cabecera del arroyo, 2, 3 son la cola del arroyo. Stream.empty marca el final de la secuencia. Los valores se pueden recuperar usando comandos de toma como los siguientes:

Mando

stream.take(2)

Flujo de procesamiento

A continuación se muestra un programa de ejemplo que muestra cómo crear, inicializar y procesar Stream:

Ejemplo

import scala.collection.immutable.Stream
object Demo {
   def main(args: Array[String]) = {
      val stream = 1 #:: 2 #:: 3 #:: Stream.empty
      // print stream
      println(stream)
      // Print first two elements	
      stream.take(2).print
      println()
      // Create an empty stream
      val stream1: Stream[Int] = Stream.empty[Int]
      // Print element
      println(s"Stream: $stream1")
   }
}

Guarde el programa anterior en Demo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.

Mando

\>scalac Demo.scala
\>scala Demo

Salida

Stream(1, <not computed>)
1, 2
Stream: Stream()