code: public static <R, E> Iterator<R> transform(E[] array, Function<E, R> function) {
          return new TransformingIterator<>(new ArrayIterator<E>(array), function);
      }
docs: Creates an iterator yielding the result of the transformation applied by
  the function on the elements of the source array. This transformation is
  evaluated lazily when the resulting iterator is consumed. E.g:
  <code>
  transform([1,2,3], toStringTransformer) -> ["1", "2", "3"]
  </code>
  
  @param <R> the result iterator element type parameter
  @param <E> the input array element type parameter
  @param array the array where elements are fetched from
  @param function a function used to transform each element
  @return the transformed iterator