pragmatic-fp-ts
Version:
Opinionated functional programming library with easy use in mind
15 lines (10 loc) • 457 B
text/typescript
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;
}