Hyperlinkv0.8.0-beta.28

Stream

Stream.changesconsteffect/Stream.ts:9230
<A, E, R>(self: Stream<A, E, R>): Stream<A, E, R>

Emits only elements that differ from the previous one.

Example (Emitting changed values)

import { Console, Effect, Stream } from "effect"

const program = Effect.gen(function*() {
  const values = yield* Stream.fromIterable([1, 1, 2, 2, 3]).pipe(
    Stream.changes,
    Stream.runCollect
  )

  yield* Console.log(values)
})

Effect.runPromise(program)
// [1, 2, 3]
Deduplication
Source effect/Stream.ts:92301 lines
export const changes = <A, E, R>(self: Stream<A, E, R>): Stream<A, E, R> => changesWith(self, Equal.equals)