code: public static <A> A reduceLeft (F<A,A> func, Iterable<? extends A> values)
      {
          Iterator<? extends A> iter = values.iterator();
          A zero = iter.next();
          while (iter.hasNext()) {
              zero = func.apply(zero, iter.next());
          }
          return zero;
      }
docs: Reduces the supplied values using the supplied function with a left fold.
  
  @exception NoSuchElementException thrown if values does not contain at least one element.