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