/** * joins to functions with matching types to a new function * converts T2 and T3 to X and T1 to R * @param outer * the last applied function * @param inner * the first applied function * @return a new function */ public static <R, T1, T2, T3, A, B> Function3<R, T1, T2, T3> join(Function2<R, ? super A, ? super B> outer, Function2<A, ? super T1, ? super T2> left, Function2<B, ? super T2, ? super T3> right) { return new JoinedFunction33<R, T1, T2, T3, A, B>(outer, left, right); }
/** * joins to functions with matching types to a new function * converts T2 and T3 to X and T1 to R * @param outer * the last applied function * @param inner * the first applied function * @return a new function */ public static <R, T1, T2, T3, A, B> Function3<R, T1, T2, T3> join(Function2<R, A, B> outer, Function2<A, T1, T2> left, Function2<B, T2, T3> right) { return new JoinedFunction33<R, T1, T2, T3, A, B>(outer, left, right); }
/** * joins to functions with matching types to a new function * converts T2 and T3 to X and T1 to R * @param outer * the last applied function * @param inner * the first applied function * @return a new function */ public static <R, T1, T2, T3, A, B> Function3<R, T1, T2, T3> join(Function2<R, ? super A, ? super B> outer, Function2<A, ? super T1, ? super T2> left, Function2<B, ? super T2, ? super T3> right) { return new JoinedFunction33<R, T1, T2, T3, A, B>(outer, left, right); }