From 9d5cdb693089e98165f9e361fe3db795fc45cc33 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 13 Jan 2016 21:23:01 +0000 Subject: Add foldRight --- .../org/zwobble/couscous/frontends/java/JavaStatementReader.java | 5 ++--- 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 V foldRight(List iterable, V initialValue, BiFunction function) { + return foldLeft(Lists.reverse(iterable), initialValue, function); + } } -- cgit v1.2.3