diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-02-29 09:16:54 -0500 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-02-29 09:16:54 -0500 |
| commit | 25959ffced5eb4e239610e79f05c1774e54ec29c (patch) | |
| tree | 81acd44d4d8ae3b2bbaba977ab8133cc4c657efb /BJC-Utils2/src/main/java/bjc/utils/gen | |
| parent | a3a95154666eb0fbae948173d13ad72c5509b1c4 (diff) | |
Refactored Pair interface
Pair now has a proper functional interface
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gen')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java index de1e7b8..7c3ea6a 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java +++ b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java @@ -247,15 +247,16 @@ public class WeightedGrammar<E> { FunctionalList<Pair<Integer, FunctionalList<E>>> newResults = new FunctionalList<>(); rule.getValues().forEach((par) -> { - FunctionalList<E> nl = par.r.clone(); + FunctionalList<E> nl = par + .merge((left, right) -> right.clone()); nl.prepend(prefixToken); - newResults.add(new Pair<>(par.l + addProb, nl)); + newResults.add(new Pair<>( + par.merge((left, right) -> left) + addProb, nl)); }); - newResults.forEach((par) -> { - addCase(rName, par.l, par.r); - }); + newResults.forEach((par) -> par + .doWith((left, right) -> addCase(rName, left, right))); } /** @@ -281,7 +282,8 @@ public class WeightedGrammar<E> { // TODO bugtest this. if it works, write multiSuffixWith for (int i = 1; i <= nTimes; i++) { - FunctionalList<E> nl = par.r.clone(); + FunctionalList<E> nl = par + .merge((left, right) -> right.clone()); for (int j = 1; j <= i; j++) { nl.prepend(prefixToken); @@ -291,12 +293,15 @@ public class WeightedGrammar<E> { } nls.forEach((ls) -> { - newResults.add(new Pair<>(par.l + addProb, ls)); + newResults.add(new Pair<>( + par.merge((left, right) -> left) + addProb, ls)); }); }); newResults.forEach((par) -> { - addCase(rName, par.l, par.r); + par.doWith((left, right) -> { + addCase(rName, left, right); + }); }); } @@ -363,14 +368,18 @@ public class WeightedGrammar<E> { FunctionalList<Pair<Integer, FunctionalList<E>>> newResults = new FunctionalList<>(); rule.getValues().forEach((par) -> { - FunctionalList<E> nl = par.r.clone(); + FunctionalList<E> nl = par + .merge((left, right) -> right.clone()); nl.add(prefixToken); - newResults.add(new Pair<>(par.l + addProb, nl)); + newResults.add(new Pair<>( + par.merge((left, right) -> left) + addProb, nl)); }); newResults.forEach((par) -> { - addCase(rName, par.l, par.r); + par.doWith((left, right) -> { + addCase(rName, left, right); + }); }); } |
