/** * joins two functions with matching types to a new function * converts T to X to R * * @param outer * the last applied function * @param inner * the first applied function * @return a new function */ public static <R, X, T> Function1<R, T> join(Function1<R, ? super X> outer, Function1<X, ? super T> inner) { return new JoinedFunction1<R, X, T>(outer, inner); }
/** * joins two functions with matching types to a new function * converts T to X to R * * @param outer * the last applied function * @param inner * the first applied function * @return a new function */ public static <R, X, T> Function1<R, T> join(Function1<R, ? super X> outer, Function1<X, ? super T> inner) { return new JoinedFunction1<R, X, T>(outer, inner); }
/** * joins two functions with matching types to a new function * converts T to X to R * * @param outer * the last applied function * @param inner * the first applied function * @return a new function */ public static <R, X, T> Function1<R, T> join(Function1<R, X> outer, Function1<X, T> inner) { return new JoinedFunction1<R, X, T>(outer, inner); }