Это может быть бесполезно, если вас не устраивает C #, дженерики или лямбды, но вот эквивалент в C #:
//Takes two functions, returns composed one
public static Func<T1, T2> Compose<T1, T2, T3>(this Func<T1, T2> f, Func<T2, T3> g)
{
return (x) => g(f(x));
}
Просмотр параметров типа читает что-то вроде ответа Брайана:
Compose принимает одну функцию, которая идет от T1 до T2, и другую, которая идет от T2 до T3, и возвращает комбинацию двух, которая идет от T1 до T3.