diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-13 21:23:01 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-13 21:23:01 +0000 |
| commit | 9d5cdb693089e98165f9e361fe3db795fc45cc33 (patch) | |
| tree | ae7688e150510e7b9d9308c3ed1b6da6bd0a954c /src/main/java/org | |
| parent | 816e375ae7c5f33cf1006ea838809159684559ac (diff) | |
Add foldRight
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java | 5 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/util/Fold.java | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java index 3ef8a0f..0b53784 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java @@ -1,6 +1,5 @@ package org.zwobble.couscous.frontends.java; -import com.google.common.collect.Lists; import org.eclipse.jdt.core.dom.*; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.sugar.SwitchCaseNode; @@ -23,7 +22,7 @@ import static org.zwobble.couscous.ast.sugar.SwitchCaseNode.switchCase; import static org.zwobble.couscous.frontends.java.JavaExpressionReader.coerceExpression; import static org.zwobble.couscous.frontends.java.JavaTypes.typeOf; import static org.zwobble.couscous.util.ExtraLists.*; -import static org.zwobble.couscous.util.Fold.foldLeft; +import static org.zwobble.couscous.util.Fold.foldRight; import static org.zwobble.couscous.util.Tails.tail; import static org.zwobble.couscous.util.Tails.tails; import static org.zwobble.couscous.util.UpToAndIncludingIterable.upToAndIncluding; @@ -117,7 +116,7 @@ class JavaStatementReader { return cons( switchValueAssignment, - foldLeft(Lists.reverse(cases), handleDefault, (handle, currentCase) -> + foldRight(cases, handleDefault, (handle, currentCase) -> currentCase.getValue() .map(value -> list(ifStatement( methodCall( diff --git a/src/main/java/org/zwobble/couscous/util/Fold.java b/src/main/java/org/zwobble/couscous/util/Fold.java index 85622ed..e86454e 100644 --- a/src/main/java/org/zwobble/couscous/util/Fold.java +++ b/src/main/java/org/zwobble/couscous/util/Fold.java @@ -1,5 +1,8 @@ package org.zwobble.couscous.util; +import com.google.common.collect.Lists; + +import java.util.List; import java.util.function.BiFunction; public class Fold { @@ -10,4 +13,8 @@ public class Fold { } return value; } + + public static <T, V> V foldRight(List<T> iterable, V initialValue, BiFunction<V, T, V> function) { + return foldLeft(Lists.reverse(iterable), initialValue, function); + } } |
