Packages

object Stream extends StreamLowPriority

Source
Stream.scala
Linear Supertypes
StreamLowPriority, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Stream
  2. StreamLowPriority
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. final class CompileOps[F[_], G[_], O] extends AnyRef

    Projection of a Stream providing various ways to compile a Stream[F,O] to a G[...].

  2. implicit final class FallibleOps[O] extends AnyVal

    Provides syntax for fallible streams.

  3. implicit final class IdOps[O] extends AnyVal

    Provides syntax for pure pipes based on cats.Id.

  4. implicit final class InvariantOps[F[_], O] extends AnyVal

    Provides syntax for streams that are invariant in F and O.

  5. implicit final class NestedStreamOps[F[_], O] extends AnyVal

    Provides syntax for streams of streams.

  6. implicit final class PipeOps[F[_], I, O] extends AnyVal

    Provides operations on effectful pipes for syntactic convenience.

  7. implicit final class PureOps[O] extends AnyVal

    Provides syntax for pure streams.

  8. implicit final class PurePipe2Ops[I, I2, O] extends AnyVal

    Provides operations on pure pipes for syntactic convenience.

  9. implicit final class PurePipeOps[I, O] extends AnyVal

    Provides operations on pure pipes for syntactic convenience.

  10. final class StepLeg[F[_], O] extends AnyRef

    When merging multiple streams, this represents step of one leg.

    When merging multiple streams, this represents step of one leg.

    It is common to uncons, however unlike uncons, it keeps track of stream scope independently of the main scope of the stream.

    This assures, that after each next stepLeg each Stream leg keeps its scope when interpreting.

    Usual scenarios is to first invoke stream.pull.stepLeg and then consume whatever is available in leg.head. If the next step is required leg.stepLeg will yield next Leg.

    Once the stream will stop to be interleaved (merged), then stream allows to return to normal stream invocation.

  11. final class ToPull[F[_], O] extends AnyVal

    Projection of a Stream providing various ways to get a Pull from the Stream.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. implicit def alignInstance[F[_]]: Align[[β$5$]Stream[F, β$5$]]

    Align instance for Stream.

    Align instance for Stream. * @example

    scala> import cats.syntax.all._
    scala> Stream(1,2,3).align(Stream("A","B","C","D","E")).toList
    res0: List[cats.data.Ior[Int,String]] = List(Both(1,A), Both(2,B), Both(3,C), Right(D), Right(E))
  5. def apply[F[x] >: Pure[x], O](os: O*): Stream[F, O]

    Creates a pure stream that emits the supplied values.

    Creates a pure stream that emits the supplied values. To convert to an effectful stream, use covary.

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def attemptEval[F[x] >: Pure[x], O](fo: F[O]): Stream[F, Either[Throwable, O]]

    Creates a single element stream that gets its value by evaluating the supplied effect.

    Creates a single element stream that gets its value by evaluating the supplied effect. If the effect fails, a Left is emitted. Otherwise, a Right is emitted.

    Use eval instead if a failure while evaluating the effect should fail the stream.

    Example:
    1. scala> import cats.effect.SyncIO
      scala> Stream.attemptEval(SyncIO(10)).compile.toVector.unsafeRunSync()
      res0: Vector[Either[Throwable,Int]] = Vector(Right(10))
      scala> Stream.attemptEval(SyncIO(throw new RuntimeException)).compile.toVector.unsafeRunSync()
      res1: Vector[Either[Throwable,Nothing]] = Vector(Left(java.lang.RuntimeException))
  8. def awakeDelay[F[x] >: Pure[x]](d: FiniteDuration)(implicit t: Temporal[F]): Stream[F, FiniteDuration]

    Light weight alternative to awakeEvery that sleeps for duration d before each pulled element.

  9. def awakeEvery[F[x] >: Pure[x]](d: FiniteDuration)(implicit t: Temporal[F]): Stream[F, FiniteDuration]

    Discrete stream that every d emits elapsed duration since the start time of stream consumption.

    Discrete stream that every d emits elapsed duration since the start time of stream consumption.

    For example: awakeEvery[IO](5 seconds) will return (approximately) 5s, 10s, 15s, and will lie dormant between emitted values.

    d

    FiniteDuration between emits of the resulting stream

  10. def bracket[F[x] >: Pure[x], R](acquire: F[R])(release: (R) => F[Unit]): Stream[F, R]

    Creates a stream that emits a resource allocated by an effect, ensuring the resource is eventually released regardless of how the stream is used.

    Creates a stream that emits a resource allocated by an effect, ensuring the resource is eventually released regardless of how the stream is used.

    A typical use case for bracket is working with files or network sockets. The resource effect opens a file and returns a reference to it. One can then flatMap on the returned Stream to access the file, e.g to read bytes and transform them in to some stream of elements (e.g., bytes, strings, lines, etc.). The release action then closes the file once the result Stream terminates, even in case of interruption or errors.

    acquire

    resource to acquire at start of stream

    release

    function which returns an effect that releases the resource

  11. def bracketCase[F[x] >: Pure[x], R](acquire: F[R])(release: (R, ExitCase) => F[Unit]): Stream[F, R]

    Like bracket but the release action is passed an ExitCase[Throwable].

    Like bracket but the release action is passed an ExitCase[Throwable].

    ExitCase.Canceled is passed to the release action in the event of either stream interruption or overall compiled effect cancelation.

  12. def bracketCaseWeak[F[x] >: Pure[x], R](acquire: F[R])(release: (R, ExitCase) => F[Unit]): Stream[F, R]

    Like bracketCase but no scope is introduced, causing resource finalization to occur at the end of the current scope at the time of acquisition.

  13. def bracketWeak[F[x] >: Pure[x], R](acquire: F[R])(release: (R) => F[Unit]): Stream[F, R]

    Like bracket but no scope is introduced, causing resource finalization to occur at the end of the current scope at the time of acquisition.

  14. def chunk[F[x] >: Pure[x], O](os: Chunk[O]): Stream[F, O]

    Creates a pure stream that emits the elements of the supplied chunk.

    Creates a pure stream that emits the elements of the supplied chunk.

    Example:
    1. scala> Stream.chunk(Chunk(1,2,3)).toList
      res0: List[Int] = List(1, 2, 3)
  15. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  16. def constant[F[x] >: Pure[x], O](o: O, chunkSize: Int = 256): Stream[F, O]

    Creates an infinite pure stream that always returns the supplied value.

    Creates an infinite pure stream that always returns the supplied value.

    Elements are emitted in finite chunks with chunkSize number of elements.

    Example:
    1. scala> Stream.constant(0).take(5).toList
      res0: List[Int] = List(0, 0, 0, 0, 0)
  17. implicit def deferInstance[F[_]]: Defer[[β$17$]Stream[F, β$17$]]

    Defer instance for Stream

  18. def duration[F[x] >: Pure[x]](implicit F: Sync[F]): Stream[F, FiniteDuration]

    A continuous stream of the elapsed time, computed using System.nanoTime.

    A continuous stream of the elapsed time, computed using System.nanoTime. Note that the actual granularity of these elapsed times depends on the OS, for instance the OS may only update the current time every ten milliseconds or so.

  19. def emit[F[x] >: Pure[x], O](o: O): Stream[F, O]

    Creates a singleton pure stream that emits the supplied value.

    Creates a singleton pure stream that emits the supplied value.

    Example:
    1. scala> Stream.emit(0).toList
      res0: List[Int] = List(0)
  20. def emits[F[x] >: Pure[x], O](os: Seq[O]): Stream[F, O]

    Creates a pure stream that emits the supplied values.

    Creates a pure stream that emits the supplied values.

    Example:
    1. scala> Stream.emits(List(1, 2, 3)).toList
      res0: List[Int] = List(1, 2, 3)
  21. val empty: Stream[Pure, INothing]

    Empty pure stream.

  22. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  24. def eval[F[_], O](fo: F[O]): Stream[F, O]

    Creates a single element stream that gets its value by evaluating the supplied effect.

    Creates a single element stream that gets its value by evaluating the supplied effect. If the effect fails, the returned stream fails.

    Use attemptEval instead if a failure while evaluating the effect should be emitted as a value.

    Example:
    1. scala> import cats.effect.SyncIO
      scala> Stream.eval(SyncIO(10)).compile.toVector.unsafeRunSync()
      res0: Vector[Int] = Vector(10)
      scala> Stream.eval(SyncIO(throw new RuntimeException)).covaryOutput[Int].compile.toVector.attempt.unsafeRunSync()
      res1: Either[Throwable,Vector[Int]] = Left(java.lang.RuntimeException)
  25. def evalSeq[F[_], S[A] <: Seq[A], O](fo: F[S[O]]): Stream[F, O]

    Like evals, but lifts any Seq in the effect.

  26. def evalUnChunk[F[_], O](fo: F[Chunk[O]]): Stream[F, O]

    Like eval but resulting chunk is flatten efficiently.

  27. def evals[F[_], S[_], O](fo: F[S[O]])(implicit arg0: Foldable[S]): Stream[F, O]

    Like eval, but lifts a foldable structure.

  28. def every[F[x] >: Pure[x]](d: FiniteDuration)(implicit clock: Clock[F]): Stream[F, Boolean]

    A continuous stream which is true after d, 2d, 3d... elapsed duration, and false otherwise.

    A continuous stream which is true after d, 2d, 3d... elapsed duration, and false otherwise. If you'd like a 'discrete' stream that will actually block until d has elapsed, use awakeEvery instead.

  29. def exec[F[_]](action: F[Unit]): Stream[F, INothing]

    As a result, the returned stream emits no elements and hence has output type INothing.

    As a result, the returned stream emits no elements and hence has output type INothing.

    Example:
    1. scala> import cats.effect.SyncIO
      scala> Stream.exec(SyncIO(println("Ran"))).covaryOutput[Int].compile.toVector.unsafeRunSync()
      res0: Vector[Int] = Vector()
  30. def fixedDelay[F[_]](d: FiniteDuration)(implicit t: Temporal[F]): Stream[F, Unit]

    Light weight alternative to fixedRate that sleeps for duration d before each pulled element.

    Light weight alternative to fixedRate that sleeps for duration d before each pulled element.

    Behavior differs from fixedRate because the sleep between elements occurs after the next element is pulled whereas fixedRate accounts for the time it takes to process the emitted unit. This difference can roughly be thought of as the difference between scheduleWithFixedDelay and scheduleAtFixedRate in java.util.concurrent.Scheduler.

    Alias for sleep(d).repeat.

  31. def fixedRate[F[_]](d: FiniteDuration)(implicit t: Temporal[F]): Stream[F, Unit]

    Discrete stream that emits a unit every d.

    Discrete stream that emits a unit every d.

    See fixedDelay for an alternative that sleeps d between elements.

    d

    FiniteDuration between emits of the resulting stream

  32. def foldable[F[x] >: Pure[x], G[_], O](os: G[O])(implicit arg0: Foldable[G]): Stream[F, O]

    Like emits, but works for any G that has a Foldable instance.

  33. def force[F[_], A](f: F[Stream[F, A]]): Stream[F, A]

    Lifts an effect that generates a stream in to a stream.

    Lifts an effect that generates a stream in to a stream. Alias for eval(f).flatMap(_).

    Example:
    1. scala> import cats.effect.SyncIO
      scala> Stream.force(SyncIO(Stream(1,2,3).covary[SyncIO])).compile.toVector.unsafeRunSync()
      res0: Vector[Int] = Vector(1, 2, 3)
  34. def fromBlockingIterator[F[_]]: PartiallyAppliedFromIterator[F]

    Lifts an iterator into a Stream, shifting any interaction with the iterator to the blocking pool.

  35. def fromEither[F[_]]: PartiallyAppliedFromEither[F]

    Lifts an Either[Throwable, A] to an effectful Stream.

    Lifts an Either[Throwable, A] to an effectful Stream.

    Example:
    1. scala> import cats.effect.SyncIO, scala.util.Try
      scala> Stream.fromEither[SyncIO](Right(42)).compile.toList.unsafeRunSync()
      res0: List[Int] = List(42)
      scala> Try(Stream.fromEither[SyncIO](Left(new RuntimeException)).compile.toList.unsafeRunSync())
      res1: Try[List[Nothing]] = Failure(java.lang.RuntimeException)
  36. def fromIterator[F[_]]: PartiallyAppliedFromIterator[F]

    Lifts an iterator into a Stream.

  37. def fromOption[F[_]]: PartiallyAppliedFromOption[F]

    Lifts an Option[A] to an effectful Stream.

    Lifts an Option[A] to an effectful Stream.

    Example:
    1. scala> import cats.effect.SyncIO
      scala> Stream.fromOption[SyncIO](Some(42)).compile.toList.unsafeRunSync()
      res0: List[Int] = List(42)
      scala> Stream.fromOption[SyncIO](None).compile.toList.unsafeRunSync()
      res1: List[Nothing] = List()
  38. implicit def functionKInstance[F[_]]: ~>[F, [β$13$]Stream[F, β$13$]]

    FunctionK instance for F ~> Stream[F, *]

    FunctionK instance for F ~> Stream[F, *]

    Example:
    1. scala> import cats.Id
      scala> Stream.functionKInstance[Id](42).compile.toList
      res0: cats.Id[List[Int]] = List(42)
  39. implicit def functorFilterInstance[F[_]]: FunctorFilter[[β$9$]Stream[F, β$9$]]

    FunctorFilter instance for Stream.

    FunctorFilter instance for Stream.

    Example:
    1. scala> import cats.syntax.all._, scala.util._
      scala> Stream("1", "2", "NaN").mapFilter(s => Try(s.toInt).toOption).toList
      res0: List[Int] = List(1, 2)
  40. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  41. def getScope[F[x] >: Pure[x]]: Stream[F, Scope[F]]

    Gets the current scope, allowing manual leasing or interruption.

    Gets the current scope, allowing manual leasing or interruption. This is a low-level method and generally should not be used by user code.

  42. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  43. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  44. def iterable[F[x] >: Pure[x], A](os: Iterable[A]): Stream[F, A]

    Like emits, but works for any class that extends Iterable

  45. def iterate[F[x] >: Pure[x], A](start: A)(f: (A) => A): Stream[F, 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. start is the first value emitted, followed by f(start), then f(f(start)), and so on.

    Example:
    1. scala> Stream.iterate(0)(_ + 1).take(10).toList
      res0: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  46. def iterateEval[F[_], A](start: A)(f: (A) => F[A]): Stream[F, A]

    Like iterate, but takes an effectful function for producing the next state.

    Like iterate, but takes an effectful function for producing the next state. start is the first value emitted.

    Example:
    1. scala> import cats.effect.SyncIO
      scala> Stream.iterateEval(0)(i => SyncIO(i + 1)).take(10).compile.toVector.unsafeRunSync()
      res0: Vector[Int] = Vector(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  47. implicit def monadErrorInstance[F[_]](implicit ev: ApplicativeError[F, Throwable]): MonadError[[β$3$]Stream[F, β$3$], Throwable]

    MonadError instance for Stream.

    MonadError instance for Stream.

    Example:
    1. scala> import cats.syntax.all._
      scala> Stream(1, -2, 3).fproduct(_.abs).toList
      res0: List[(Int, Int)] = List((1,1), (-2,2), (3,3))
  48. implicit def monadInstance[F[_]]: Monad[[β$19$]Stream[F, β$19$]]
    Definition Classes
    StreamLowPriority
  49. implicit def monoidInstance[F[_], O]: Monoid[Stream[F, O]]

    Monoid instance for Stream.

  50. implicit def monoidKInstance[F[_]]: MonoidK[[β$15$]Stream[F, β$15$]]
  51. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  52. def never[F[_]](implicit F: Concurrent[F]): Stream[F, Nothing]

    A stream that never emits and never terminates.

  53. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  54. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  55. def raiseError[F[_]](e: Throwable)(implicit arg0: RaiseThrowable[F]): Stream[F, INothing]

    Creates a stream that, when run, fails with the supplied exception.

    Creates a stream that, when run, fails with the supplied exception.

    The F type must be explicitly provided (e.g., via raiseError[IO] or raiseError[Fallible]).

    Example:
    1. scala> import cats.effect.SyncIO
      scala> Stream.raiseError[Fallible](new RuntimeException).toList
      res0: Either[Throwable,List[INothing]] = Left(java.lang.RuntimeException)
      scala> Stream.raiseError[SyncIO](new RuntimeException).covaryOutput[Int].compile.drain.attempt.unsafeRunSync()
      res0: Either[Throwable,Unit] = Left(java.lang.RuntimeException)
  56. def random[F[_]](implicit F: Sync[F]): Stream[F, Int]

    Creates a random stream of integers using a random seed.

  57. def randomSeeded[F[x] >: Pure[x]](seed: Long): Stream[F, Int]

    Creates a random stream of integers using the supplied seed.

    Creates a random stream of integers using the supplied seed. Returns a pure stream, as the pseudo random number generator is deterministic based on the supplied seed.

  58. def range[F[x] >: Pure[x]](start: Int, stopExclusive: Int, by: Int = 1): Stream[F, Int]

    Lazily produce the range [start, stopExclusive).

    Lazily produce the range [start, stopExclusive). If you want to produce the sequence in one chunk, instead of lazily, use emits(start until stopExclusive).

    Example:
    1. scala> Stream.range(10, 20, 2).toList
      res0: List[Int] = List(10, 12, 14, 16, 18)
  59. def ranges[F[x] >: Pure[x]](start: Int, stopExclusive: Int, size: Int): Stream[F, (Int, Int)]

    Lazily produce a sequence of nonoverlapping ranges, where each range contains size integers, assuming the upper bound is exclusive.

    Lazily produce a sequence of nonoverlapping ranges, where each range contains size integers, assuming the upper bound is exclusive. Example: ranges(0, 1000, 10) results in the pairs (0, 10), (10, 20), (20, 30) ... (990, 1000)

    Note: The last emitted range may be truncated at stopExclusive. For instance, ranges(0,5,4) results in (0,4), (4,5).

    Example:
    1. scala> Stream.ranges(0, 20, 5).toList
      res0: List[(Int,Int)] = List((0,5), (5,10), (10,15), (15,20))
    Exceptions thrown

    IllegalArgumentException if size <= 0

  60. def repeatEval[F[_], O](fo: F[O]): Stream[F, O]

    Alias for eval(fo).repeat.

  61. def resource[F[_], O](r: Resource[F, O])(implicit arg0: Applicative[F]): Stream[F, O]

    Converts the supplied resource in to a singleton stream.

  62. def resourceWeak[F[_], O](r: Resource[F, O])(implicit arg0: Applicative[F]): Stream[F, O]

    Like resource but does not introduce a scope, allowing finalization to occur after subsequent appends or other scope-preserving transformations.

    Like resource but does not introduce a scope, allowing finalization to occur after subsequent appends or other scope-preserving transformations.

    Scopes can be manually introduced via scope if desired.

  63. def retry[F[_], O](fo: F[O], delay: FiniteDuration, nextDelay: (FiniteDuration) => FiniteDuration, maxAttempts: Int, retriable: (Throwable) => Boolean = scala.util.control.NonFatal.apply)(implicit arg0: Temporal[F], arg1: RaiseThrowable[F]): Stream[F, O]

    Retries fo on failure, returning a singleton stream with the result of fo as soon as it succeeds.

    Retries fo on failure, returning a singleton stream with the result of fo as soon as it succeeds.

    delay

    Duration of delay before the first retry

    nextDelay

    Applied to the previous delay to compute the next, e.g. to implement exponential backoff

    maxAttempts

    Number of attempts before failing with the latest error, if fo never succeeds

    retriable

    Function to determine whether a failure is retriable or not, defaults to retry every NonFatal. A failed stream is immediately returned when a non-retriable failure is encountered

  64. def sleep[F[_]](d: FiniteDuration)(implicit t: Temporal[F]): Stream[F, Unit]

    A single-element Stream that waits for the duration d before emitting unit.

  65. def sleep_[F[_]](d: FiniteDuration)(implicit t: Temporal[F]): Stream[F, INothing]

    Alias for sleep(d).drain.

    Alias for sleep(d).drain. Often used in conjunction with ++ (i.e., sleep_(..) ++ s) as a more performant version of sleep(..) >> s.

  66. def supervise[F[_], A](fa: F[A])(implicit F: Concurrent[F]): Stream[F, Fiber[F, Throwable, A]]

    Starts the supplied task and cancels it as finalization of the returned stream.

  67. def suspend[F[_], O](s: => Stream[F, O]): Stream[F, O]

    Returns a stream that evaluates the supplied by-name each time the stream is used, allowing use of a mutable value in stream computations.

    Returns a stream that evaluates the supplied by-name each time the stream is used, allowing use of a mutable value in stream computations.

    Note: it's generally easier to reason about such computations using effectful values. That is, allocate the mutable value in an effect and then use Stream.eval(fa).flatMap { a => ??? }.

    Example:
    1. scala> Stream.suspend {
           |   val digest = java.security.MessageDigest.getInstance("SHA-256")
           |   val bytes: Stream[Pure,Byte] = ???
           |   bytes.chunks.fold(digest) { (d,c) => d.update(c.toBytes.values); d }
           | }
  68. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  69. def toString(): String
    Definition Classes
    AnyRef → Any
  70. def unfold[F[x] >: Pure[x], S, O](s: S)(f: (S) => Option[(O, S)]): Stream[F, O]

    Creates a stream by successively applying f until a None is returned, emitting each output O and using each output S as input to the next invocation of f.

    Creates a stream by successively applying f until a None is returned, emitting each output O and using each output S as input to the next invocation of f.

    Example:
    1. scala> Stream.unfold(0)(i => if (i < 5) Some(i -> (i+1)) else None).toList
      res0: List[Int] = List(0, 1, 2, 3, 4)
  71. def unfoldChunk[F[x] >: Pure[x], S, O](s: S)(f: (S) => Option[(Chunk[O], S)]): Stream[F, O]

    Like unfold but each invocation of f provides a chunk of output.

    Like unfold but each invocation of f provides a chunk of output.

    Example:
    1. scala> Stream.unfoldChunk(0)(i => if (i < 5) Some(Chunk.seq(List.fill(i)(i)) -> (i+1)) else None).toList
      res0: List[Int] = List(1, 2, 2, 3, 3, 3, 4, 4, 4, 4)
  72. def unfoldChunkEval[F[_], S, O](s: S)(f: (S) => F[Option[(Chunk[O], S)]]): Stream[F, O]

    Like unfoldChunk, but takes an effectful function.

  73. def unfoldEval[F[_], S, O](s: S)(f: (S) => F[Option[(O, S)]]): Stream[F, O]

    Like unfold, but takes an effectful function.

  74. def unfoldLoop[F[x] <: Pure[x], S, O](s: S)(f: (S) => (O, Option[S])): Stream[F, O]

    Creates a stream by successively applying f to a S, emitting each output O and using each output S as input to the next invocation of f if it is Some, or terminating on None

    Creates a stream by successively applying f to a S, emitting each output O and using each output S as input to the next invocation of f if it is Some, or terminating on None

    Example:
    1. scala> Stream.unfoldLoop(0)(i => (i, if (i < 5) Some(i+1) else None)).toList
      res0: List[Int] = List(0, 1, 2, 3, 4, 5)
  75. def unfoldLoopEval[F[_], S, O](s: S)(f: (S) => F[(O, Option[S])]): Stream[F, O]

    Like unfoldLoop, but takes an effectful function.

  76. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  77. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  78. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def eval_[F[_], A](fa: F[A]): Stream[F, INothing]

    Creates a stream that evaluates the supplied fa for its effect, discarding the output value.

    Creates a stream that evaluates the supplied fa for its effect, discarding the output value. As a result, the returned stream emits no elements and hence has output type INothing.

    Alias for eval(fa).drain.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.5.0) Use exec if passing an F[Unit] or eval(fa).drain if passing an F[A]

  2. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from StreamLowPriority

Inherited from AnyRef

Inherited from Any

Ungrouped