code: public static <T> StreamEx<T> iterate(final T seed, final UnaryOperator<T> f) {
          return iterate(seed, x -> true, f);
      }
docs: Returns an infinite sequential ordered {@code StreamEx} produced by
  iterative application of a function {@code f} to an initial element
  {@code seed}, producing a {@code StreamEx} consisting of {@code seed},
  {@code f(seed)}, {@code f(f(seed))}, etc.
  
  <p>
  The first element (position {@code 0}) in the {@code StreamEx} will be
  the provided {@code seed}. For {@code n > 0}, the element at position
  {@code n}, will be the result of applying the function {@code f} to the
  element at position {@code n - 1}.
  
  @param <T> the type of stream elements
  @param seed the initial element
  @param f a function to be applied to to the previous element to produce a
  new element
  @return a new sequential {@code StreamEx}
  @see #iterate(Object, Predicate, UnaryOperator)