const zipWith = (...array) => { const fn = typeof array[array.length - 1] === 'function' ? array.pop() : undefined; return Array.from({ length: Math.max(...array.map(a => a.length)) }, (_, i) => fn ? fn(...array.map(a => a[i])) : array.map(a => a[i]) ); };