code: public static <A, B> B foldLeft (F<B,A> func, B zero, Iterable<? extends A> values)
      {
          for (A value : values) {
              zero = func.apply(zero, value);
          }
          return zero;
      }
docs: Left folds the supplied function over the supplied values using the supplied starting value.