Stream

@deprecated("Use LazyList (which is fully lazy) instead of Stream (which has a lazy tail only)", "2.13.0") @SerialVersionUID(3L) object Stream extends SeqFactory[[A] =>> Stream[A]]
Companion
class
Deprecated
trait SeqFactory[[A] =>> Stream[A]]
trait IterableFactory[[A] =>> Stream[A]]
class Object
trait Matchable
class Any

Type members

Classlikes

object #::
final class Cons[A](val head: A, tl: => Stream[A]) extends Stream[A]
final class Deferrer[A] extends AnyVal
object Empty extends Stream[Nothing]
class SerializationProxy[A](var coll: Stream[A]) extends Serializable

This serialization proxy is used for Streams which start with a sequence of evaluated cons cells.

This serialization proxy is used for Streams which start with a sequence of evaluated cons cells. The forced sequence is serialized in a compact, sequential format, followed by the unevaluated tail, which uses standard Java serialization to store the complete structure of unevaluated thunks. This allows the serialization of long evaluated streams without exhausting the stack through recursive serialization of cons cells.

object cons

An alternative way of building and matching Streams using Stream.cons(hd, tl).

An alternative way of building and matching Streams using Stream.cons(hd, tl).

Value members

Concrete methods

def continually[A](elem: => A): Stream[A]

Create an infinite Stream containing the given element expression (which is computed for each occurrence).

Create an infinite Stream containing the given element expression (which is computed for each occurrence).

Value Params
elem

the element composing the resulting Stream

Returns

the Stream containing an infinite number of elem

def empty[A]: Stream[A]
def from[A](coll: IterableOnce[A]): Stream[A]
def from(start: Int, step: Int): Stream[Int]

Create an infinite Stream starting at start and incrementing by step step.

Create an infinite Stream starting at start and incrementing by step step.

Value Params
start

the start value of the Stream

step

the increment value of the Stream

Returns

the Stream starting at value start.

def from(start: Int): Stream[Int]

Create an infinite Stream starting at start and incrementing by 1.

Create an infinite Stream starting at start and incrementing by 1.

Value Params
start

the start value of the Stream

Returns

the Stream starting at value start.

def fromIterator[A](it: Iterator[A]): Stream[A]
Type Params
A

type of elements

Value Params
it

Source iterator

Returns

A Stream[A] that gets its elements from the given Iterator.

def iterate[A](start: A)(f: A => A): Stream[A]

An infinite Stream that repeatedly applies a given function to a start value.

An infinite Stream that repeatedly applies a given function to a start value.

Value Params
f

the function that's repeatedly applied

start

the start value of the Stream

Returns

the Stream returning the infinite sequence of values start, f(start), f(f(start)), ...

override def newBuilder[A]: Builder[A, Stream[A]]
Definition Classes

Inherited methods

def apply[A](elems: A*): Stream[A]

Creates a collection with the specified elements.

Creates a collection with the specified elements.

Type Params
A

the type of the collection's elements

Value Params
elems

the elements of the created collection

Returns

a new collection with elements elems

Inherited from
IterableFactory
def concat[A](xss: Iterable[A]*): Stream[A]

Concatenates all argument collections into a single collection.

Concatenates all argument collections into a single collection.

Value Params
xss

the collections that are to be concatenated.

Returns

the concatenation of all the collections.

Inherited from
IterableFactory
def fill[A](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(elem: => A): Stream[Stream[Stream[Stream[Stream[A]]]]]

Produces a five-dimensional collection containing the results of some element computation a number of times.

Produces a five-dimensional collection containing the results of some element computation a number of times.

Value Params
elem

the element computation

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

n5

the number of elements in the 5th dimension

Returns

A collection that contains the results of n1 x n2 x n3 x n4 x n5 evaluations of elem.

Inherited from
IterableFactory
def fill[A](n1: Int, n2: Int, n3: Int, n4: Int)(elem: => A): Stream[Stream[Stream[Stream[A]]]]

Produces a four-dimensional collection containing the results of some element computation a number of times.

Produces a four-dimensional collection containing the results of some element computation a number of times.

Value Params
elem

the element computation

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

Returns

A collection that contains the results of n1 x n2 x n3 x n4 evaluations of elem.

Inherited from
IterableFactory
def fill[A](n1: Int, n2: Int, n3: Int)(elem: => A): Stream[Stream[Stream[A]]]

Produces a three-dimensional collection containing the results of some element computation a number of times.

Produces a three-dimensional collection containing the results of some element computation a number of times.

Value Params
elem

the element computation

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

Returns

A collection that contains the results of n1 x n2 x n3 evaluations of elem.

Inherited from
IterableFactory
def fill[A](n1: Int, n2: Int)(elem: => A): Stream[Stream[A]]

Produces a two-dimensional collection containing the results of some element computation a number of times.

Produces a two-dimensional collection containing the results of some element computation a number of times.

Value Params
elem

the element computation

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

Returns

A collection that contains the results of n1 x n2 evaluations of elem.

Inherited from
IterableFactory
def fill[A](n: Int)(elem: => A): Stream[A]

Produces a collection containing the results of some element computation a number of times.

Produces a collection containing the results of some element computation a number of times.

Value Params
elem

the element computation

n

the number of elements contained in the collection.

Returns

A collection that contains the results of n evaluations of elem.

Inherited from
IterableFactory
def iterate[A](start: A, len: Int)(f: A => A): Stream[A]

Produces a collection containing repeated applications of a function to a start value.

Produces a collection containing repeated applications of a function to a start value.

Value Params
f

the function that's repeatedly applied

len

the number of elements contained in the collection

start

the start value of the collection

Returns

a collection with len values in the sequence start, f(start), f(f(start)), ...

Inherited from
IterableFactory
def range[A](start: A, end: A, step: A)(`evidence$25`: Integral[A]): Stream[A]

Produces a collection containing equally spaced values in some integer interval.

Produces a collection containing equally spaced values in some integer interval.

Value Params
end

the end value of the collection (the first value NOT contained)

start

the start value of the collection

step

the difference between successive elements of the collection (must be positive or negative)

Returns

a collection with values start, start + step, ... up to, but excluding end

Inherited from
IterableFactory
def range[A](start: A, end: A)(`evidence$24`: Integral[A]): Stream[A]

Produces a collection containing a sequence of increasing of integers.

Produces a collection containing a sequence of increasing of integers.

Value Params
end

the end value of the collection (the first value NOT contained)

start

the first element of the collection

Returns

a collection with values start, start + 1, ..., end - 1

Inherited from
IterableFactory
def tabulate[A](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(f: (Int, Int, Int, Int, Int) => A): Stream[Stream[Stream[Stream[Stream[A]]]]]

Produces a five-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Produces a five-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Value Params
f

The function computing element values

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

n5

the number of elements in the 5th dimension

Returns

A collection consisting of elements f(i1, i2, i3, i4, i5) for 0 <= i1 < n1, 0 <= i2 < n2, 0 <= i3 < n3, 0 <= i4 < n4, and 0 <= i5 < n5.

Inherited from
IterableFactory
def tabulate[A](n1: Int, n2: Int, n3: Int, n4: Int)(f: (Int, Int, Int, Int) => A): Stream[Stream[Stream[Stream[A]]]]

Produces a four-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Produces a four-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Value Params
f

The function computing element values

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

Returns

A collection consisting of elements f(i1, i2, i3, i4) for 0 <= i1 < n1, 0 <= i2 < n2, 0 <= i3 < n3, and 0 <= i4 < n4.

Inherited from
IterableFactory
def tabulate[A](n1: Int, n2: Int, n3: Int)(f: (Int, Int, Int) => A): Stream[Stream[Stream[A]]]

Produces a three-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Produces a three-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Value Params
f

The function computing element values

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

Returns

A collection consisting of elements f(i1, i2, i3) for 0 <= i1 < n1, 0 <= i2 < n2, and 0 <= i3 < n3.

Inherited from
IterableFactory
def tabulate[A](n1: Int, n2: Int)(f: (Int, Int) => A): Stream[Stream[A]]

Produces a two-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Produces a two-dimensional collection containing values of a given function over ranges of integer values starting from 0.

Value Params
f

The function computing element values

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

Returns

A collection consisting of elements f(i1, i2) for 0 <= i1 < n1 and 0 <= i2 < n2.

Inherited from
IterableFactory
def tabulate[A](n: Int)(f: Int => A): Stream[A]

Produces a collection containing values of a given function over a range of integer values starting from 0.

Produces a collection containing values of a given function over a range of integer values starting from 0.

Value Params
f

The function computing element values

n

The number of elements in the collection

Returns

A collection consisting of elements f(0), ..., f(n -1)

Inherited from
IterableFactory
final def unapplySeq[A](x: Stream[A]): UnapplySeqWrapper[A]
Inherited from
SeqFactory
def unfold[A, S](init: S)(f: S => Option[(A, S)]): Stream[A]

Produces a collection that uses a function f to produce elements of type A and update an internal state of type S.

Produces a collection that uses a function f to produce elements of type A and update an internal state of type S.

Type Params
A

Type of the elements

S

Type of the internal state

Value Params
f

Computes the next element (or returns None to signal the end of the collection)

init

State initial value

Returns

a collection that produces elements using f until f returns None

Inherited from
IterableFactory

Implicits

Implicits

implicit def toDeferrer[A](l: => Stream[A]): Deferrer[A]

Inherited implicits

implicit def iterableFactory[A]: Factory[A, Stream[A]]
Inherited from
IterableFactory