diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/util/ExtraLists.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/util/ExtraLists.java b/src/main/java/org/zwobble/couscous/util/ExtraLists.java new file mode 100644 index 0000000..b3c017f --- /dev/null +++ b/src/main/java/org/zwobble/couscous/util/ExtraLists.java @@ -0,0 +1,18 @@ +package org.zwobble.couscous.util; + +import java.util.List; +import java.util.function.BiFunction; +import java.util.function.Function; + +public class ExtraLists { + public static <T, R> R foldLeft( + List<T> list, + Function<T, R> initialValue, + BiFunction<R, T, R> function) { + R accumulator = initialValue.apply(list.get(0)); + for (int index = 1; index < list.size(); index++) { + accumulator = function.apply(accumulator, list.get(index)); + } + return accumulator; + } +} |
