code: public static <T, C extends Comparable<? super C>> T minBy(final Iterator<T> iterator, final Function1<? super T, C> compareBy) {
  		if (compareBy == null)
  			throw new NullPointerException("compareBy");
  		return min(iterator, new KeyComparator<T, C>(compareBy));
  	}
docs: Finds the element that yields the minimum value when passed to <code>compareBy</code>. If there are several
  maxima, the first one will be returned.
  
  @param iterator
  the elements to find the minimum of. May not be <code>null</code>.
  @param compareBy
  a function that returns a comparable characteristic to compare the elements by. May not be <code>null</code>.
  @return the minimum
  @throws NoSuchElementException
  if the iterator is empty
  @since 2.7