### Question:
Exercise3 { static <A, B> B foldRight2(final List<A> list, final B initial, final Function2<A, B, B> operator) { throw new UnsupportedOperationException("Exercise 3 foldRight2 is missing!"); }    }### Answer:
@Test public void foldRight_in_terms_of_foldLeft() { final List<Integer> list = Arrays.asList(1, 2, 3); final String expected = "(1 + (2 + (3 + 0)))"; final String actual = Exercise3.foldRight2(list, "0", (integer, string) -> String.format("(%d + %s)", integer, string) ); assertEquals(expected, actual); }