In Java 8, there are many functional interfaces provided such as UnaryOperator, BinaryOperator and Function etc.
The Code,
UnaryOperator<Integer> uOp = (Integer i) -> i * 10;
BinaryOperator<Integer> bOp = (Integer i1, Integer i2) -> i1 * i2 * 10;
can always be written using Function as below,
Function<Integer, Integer> f1 = (Integer i) -> i * 10;
BiFunction<Integer, Integer, Integer> f2 = (Integer i1, Integer i2) -> i1 * i2 * 10;
So, whats the use of these operator interfaces ? Are they achieving anything different than what can be achieved using Function ?