effect-io-ai

Package: effect
Module: Effect

Effect.partition

Applies an effectful function to each element and partitions failures and successes.

Details

The returned tuple is [excluded, satisfying], where excluded contains all failures and satisfying contains all successes.

This function runs every effect and never fails. Use concurrency to control parallelism.

Example (Separating successes and failures)

import { Effect } from "effect"

const program = Effect.partition([0, 1, 2, 3], (n) =>
  n % 2 === 0 ? Effect.fail(`${n} is even`) : Effect.succeed(n)
)

Effect.runPromise(program).then(console.log)
// [ ["0 is even", "2 is even"], [1, 3] ]

Signature

declare const partition: { <A, B, E, R>(f: (a: A, i: number) => Effect<B, E, R>, options?: { readonly concurrency?: Concurrency | undefined; }): (elements: Iterable<A>) => Effect<[excluded: Array<E>, satisfying: Array<B>], never, R>; <A, B, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options?: { readonly concurrency?: Concurrency | undefined; }): Effect<[excluded: Array<E>, satisfying: Array<B>], never, R>; }

Source

Since v2.0.0