UNPKG

pragmatic-fp-ts

Version:

Opinionated functional programming library with easy use in mind

15 lines (10 loc) 457 B
import { Mappable } from "./main.ts"; export function juxt<A, B>(fns: Mappable<A[], B>[], coll: A[]): B[]; export function juxt<A, B>(fns: Mappable<A[], B>[]): (coll: A[]) => B[]; export function juxt<A, B>(fns: Mappable<A[], B>[], coll?: A[]) { if (arguments.length === 1) return (_coll: A[]) => juxt(fns, _coll); const n = fns.length; const result: B[] = new Array(n); for (let i = 0; i < n; ++i) result[i] = fns[i](coll!); return result; }