code: public static <T, C extends Comparable<? super C>> T maxBy(final Iterable<T> iterable,
  			final Function1<? super T, C> compareBy) {
  		return IteratorExtensions.maxBy(iterable.iterator(), compareBy);
  	}
docs: Finds the element that yields the maximum value when passed to <code>compareBy</code> If there are several
  maxima, the first one will be returned.
  
  @param iterable
  the elements to find the maximum 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 maximum
  @throws NoSuchElementException
  if the iterable is empty
  @since 2.7