(a)
public class Add extends Function.O2<Integer, Integer, Integer> { private Add() {} public static final Add INSTANCE = new Add(); public Integer call(Integer x, Integer y) { return x + y; } }(b)
Fcn<Integer, Integer> inc = Add.INSTANCE.x(1); System.out.println("Inc 5 = " + inc.x(5));(c)
Transform.FcnObject<Integer, Integer> incList = Transform.make(inc); System.out.println("inc list = " + incList.x(Arrays.asList(2, 4, 8, 16, 32)) .x(new LinkedList<Integer>()).toString());
Example 1: (a) The add function; (b) an increment function object, inc, would then have type Fcn<Integer, Integer>; (c) using the Transform function object.