code: function zipWith(f) {
      return function(xs) {
        return function(ys) {
          var result = [];
          var len = Math.min (xs.length, ys.length);
          for (var idx = 0; idx < len; idx += 1) {
            result.push (f (xs[idx]) (ys[idx]));
          }
          return result;
        };
      };
    }
docs: # zipWith :: (a -> b -> c) -> Array a -> Array b -> Array c . . Returns the result of combining, pairwise, the given arrays using the . given binary function. The length of the resulting array is equal to the . length of the shorter input array. . . See also [`zip`](#zip). . . ```javascript . > S.zipWith (a => b => a + b) (['a', 'b']) (['x', 'y', 'z']) . ['ax', 'by'] . . > S.zipWith (a => b => [a, b]) ([1, 3, 5]) ([2, 4]) . [[1, 2], [3, 4]] . ```