Package: effect
Module: Stream
Runs the stream and folds elements using an effectful reducer.
When to use
Use when reducing stream elements needs Effects, services, or failures in the reducer.
Example (Effectfully folding stream values)
import { Console, Effect, Stream } from "effect"
const program = Effect.gen(function*() {
const total = yield* Stream.runFoldEffect(
Stream.make(1, 2, 3),
() => 0,
(acc, n) => Effect.succeed(acc + n)
)
yield* Console.log(total)
})
Effect.runPromise(program)
// 6
Signature
declare const runFoldEffect: { <Z, A, EX, RX>(initial: LazyArg<Z>, f: (acc: Z, a: A) => Effect.Effect<Z, EX, RX>): <E, R>(self: Stream<A, E, R>) => Effect.Effect<Z, E | EX, R | RX>; <A, E, R, Z, EX, RX>(self: Stream<A, E, R>, initial: LazyArg<Z>, f: (acc: Z, a: A) => Effect.Effect<Z, EX, RX>): Effect.Effect<Z, E | EX, R | RX>; }
Since v2.0.0