Hyperlinkv0.8.0-beta.28

Stream

Stream.runSumconsteffect/Stream.ts:10675
<E, R>(self: Stream<number, E, R>): Effect.Effect<number, E, R>

Runs the stream and returns the numeric sum of its elements.

Example (Summing stream values)

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

const program = Effect.gen(function*() {
  const total = yield* Stream.runSum(Stream.make(1, 2, 3))
  yield* Console.log(total)
})

Effect.runPromise(program)
// 6
destructors
export const runSum = <E, R>(self: Stream<number, E, R>): Effect.Effect<number, E, R> =>
  Channel.runFold(self.channel, () => 0, (acc, chunk) => {
    for (let i = 0; i < chunk.length; i++) {
      acc += chunk[i]
    }
    return acc
  })