code: public static <T, R> Ix<R> zip(Iterable<? extends T>[] sources, IxFunction<? super Object[], R> zipper) {
          return new IxZipArray<T, R>(nullCheck(sources, "sources is null"), nullCheck(zipper, "zipper is null"));
      }
docs: Combines the next element from each source Iterable via a zipper function.
  <p>
  If one of the source Iterables is sorter the sequence terminates eagerly.
  <p>
  The result's iterator() doesn't support remove().
  
  @param <T> the common element type of the sources
  @param <R> the result value type
  @param sources the array of Iterable sources, not null
  @param zipper the function that takes an array of values and returns a value
  to be emitted, one from each source, not null
  @return the new Ix instance
  @throws NullPointerException if sources or zipper is null
  @since 1.0