Package: effect
Module: Effect
Returns the first element that satisfies an effectful predicate.
Details
The predicate receives the element and its index. Evaluation short-circuits as soon as an element matches.
Example (Finding the first successful match)
import { Effect } from "effect"
const program = Effect.findFirst([1, 2, 3, 4], (n) => Effect.succeed(n > 2))
Effect.runPromise(program).then(console.log)
// { _id: 'Option', _tag: 'Some', value: 3 }
Signature
declare const findFirst: { <A, E, R>(predicate: (a: NoInfer<A>, i: number) => Effect<boolean, E, R>): (elements: Iterable<A>) => Effect<Option<A>, E, R>; <A, E, R>(elements: Iterable<A>, predicate: (a: NoInfer<A>, i: number) => Effect<boolean, E, R>): Effect<Option<A>, E, R>; }
Since v2.0.0