### Question:
Exercise6 { static <A, B, C> Function1<B, C> applyFirst(final Function1<A, Function1<B, C>> function, final Supplier<A> supplier) { throw new UnsupportedOperationException("Exercise 6 applyFirst is missing!"); }    }### Answer:
@Test public void should_apply_first_argument() { final Supplier<String> supplier = () -> "foo"; final Function1<String, Function1<Integer, String>> function = string -> integer -> String.format("%s : %d", string, integer); final Function1<Integer, String> tested = Exercise6.applyFirst(function, supplier); assertEquals(function.apply("foo").apply(42), tested.apply(42)); }