public static <T1, T2, R> Function<Tuple2<T1, T2>, R> function(Function2<T1, T2, R> function) {
        return tuple -> function.apply(tuple.getT1(), tuple.getT2());
    }
public static < T1 , T2 , R > Function < Tuple2 < T1 , T2 > , R > function ( Function2 < T1 , T2 , R > function ) { return tuple -> function . apply ( tuple . getT1 ( ) , tuple . getT2 ( ) ) ; }
Returns a {@link Function} of {@link Tuple2} that wraps a function of the component values of the tuple

@param function the component value function
@param <T1>     the type of the first value
@param <T2>     the type of the second value
@param <R>      the type of the result of the function
@return the wrapper function