let f = {};f.zip = (...xs) => { let r = []; let length = Math.min.apply(null, xs.map(x => x.length)); xs.forEach( x => nple.push(x[i]) ); r.push(nple); } return r;};f.zipWith = (op, ...xs) => f.zip.apply(null, xs).map( (x) => x.reduce(op)