UNPKG

pragmatic-fp-ts

Version:

Opinionated functional programming library with easy use in mind

15 lines (10 loc) 369 B
export function xprod<A, B>(a: A[], b: B[]): [A, B][]; export function xprod<A>(a: A[]): <B>(b: B[]) => [A, B][]; export function xprod<A, B>(a: A[], b?: B[]) { if (arguments.length === 1) return (b_: B[]) => xprod(a, b_); const result: [A, B][] = []; (a || []).forEach((aa) => { (b || []).forEach((bb) => result.push([aa, bb])); }); return result; }