UNPKG

pragmatic-fp-ts

Version:

Opinionated functional programming library with easy use in mind

16 lines (11 loc) 449 B
import { Predicate } from "./main.ts"; // Wraps a predicate P so that when `P(a) = true` then // `complement(P)(a) = false` and vice versa export function complement<A>(pred: Predicate<A>, value: A): boolean; export function complement<A>(pred: Predicate<A>): Predicate<A>; export function complement<A>(pred: Predicate<A>, value?: A) { if (arguments.length === 1) { return (val: A) => complement(pred, val); } return !pred(value!); }