Hyperlinkv0.8.0-beta.28

Number

Number.ReducerMultiplyconsteffect/Number.ts:824
Reducer.Reducer<number>

Reducer for combining numbers using multiplication.

When to use

Use to multiply many numbers through APIs that consume a Reducer.

Details

The reducer starts from 1, so reducing an empty collection returns 1.

Gotchas

Reducing an iterable short-circuits when it sees 0, so later elements are not consumed.

Source effect/Number.ts:8248 lines
export const ReducerMultiply: Reducer.Reducer<number> = Reducer.make((a, b) => a * b, 1, (collection) => {
  let acc = 1
  for (const n of collection) {
    if (n === 0) return 0
    acc *= n
  }
  return acc
})