T result = null; T next; for (int i = 0; i < this.size() - 1; i++) { result = this.get(i); next = this.get(i + 1); result = reduceFunc.apply(result, next);
T result = this.get(0); for (int i = 1; i < this.size(); i++) { result = reduceFunc.apply(result, this.get(i));
            public T reduceLeft(Function._2<T, T, T> reduceFunc) {                if (this.size() == 1) {                    return this.get(0);                }                T result = null;                T next;                for (int i = 0; i < this.size() - 1; i++) {                    result = this.get(i);                    next = this.get(i + 1);                    result = reduceFunc.apply(result, next);                }                return result;            }