### Question:
TransposedFunction implements BinaryFunction<L, R, T> { public final T evaluate(L left, R right) { return function.evaluate(right, left); } TransposedFunction(BinaryFunction<? super R, ? super L, ? extends T> function); final T evaluate(L left, R right); @Override final boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static TransposedFunction<R, L, T> transpose(BinaryFunction<? super L, ? super R, ? extends T> f);  }### Answer:
@Test public void testEvaluate() throws Exception { BinaryFunction<Object, Object, Object> f = new TransposedFunction<Object, Object, Object>(LeftIdentity.FUNCTION); assertEquals("xyzzy",f.evaluate(null,"xyzzy")); assertNull(f.evaluate("xyzzy",null)); }