aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util')
-rw-r--r--src/main/java/org/zwobble/couscous/util/ExtraLists.java18
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;
+ }
+}