From eda05cc1e2f845b4e7c3eeea505c535432240197 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 30 Mar 2016 14:16:10 +0100 Subject: Read extended operands in infix operations --- src/main/java/org/zwobble/couscous/util/Fold.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/main/java/org/zwobble/couscous/util/Fold.java') diff --git a/src/main/java/org/zwobble/couscous/util/Fold.java b/src/main/java/org/zwobble/couscous/util/Fold.java index e86454e..bda680d 100644 --- a/src/main/java/org/zwobble/couscous/util/Fold.java +++ b/src/main/java/org/zwobble/couscous/util/Fold.java @@ -2,6 +2,7 @@ package org.zwobble.couscous.util; import com.google.common.collect.Lists; +import java.util.Iterator; import java.util.List; import java.util.function.BiFunction; @@ -13,6 +14,14 @@ public class Fold { } return value; } + public static T foldLeft(Iterable iterable, BiFunction function) { + Iterator iterator = iterable.iterator(); + T value = iterator.next(); + while (iterator.hasNext()) { + value = function.apply(value, iterator.next()); + } + return value; + } public static V foldRight(List iterable, V initialValue, BiFunction function) { return foldLeft(Lists.reverse(iterable), initialValue, function); -- cgit v1.2.3