import { curry, Predicate } from '@typed/lambda' /** * Returns true if value matches any predicates * @param predicates :: [(a -> boolean)] * @param value :: a * @returns :: boolean */ export const anyPass: { (predicates: ReadonlyArray>, value: A): boolean (predicates: ReadonlyArray>): (value: A) => boolean } = curry(__anyPass) as { (predicates: ReadonlyArray>, value: A): boolean (predicates: ReadonlyArray>): (value: A) => boolean } function __anyPass(predicates: ReadonlyArray>, value: A): boolean { for (const predicate of predicates) { if (predicate(value)) { return true } } return false }