/// <summary> /// Curry a two parameter function /// </summary> public static Func <T1, Func <T2, T3> > Curry <T1, T2, T3>(this Func <T1, T2, T3> func) { return(Fun.Curry(func)); }
/// <summary> /// Partially apply the first arg to a three parameter function /// </summary> public static Func <T2, Func <T3, T4> > Apply <T1, T2, T3, T4>(this Func <T1, T2, T3, T4> func, T1 arg1) { return(Fun.Apply(func, arg1)); }
/// <summary> /// Compose /// </summary> public static Func <T1, T3> Compose <T1, T2, T3>(this Func <T1, T2> func1, Func <T2, T3> func2) { return(Fun.Compose(func1, func2)); }
/// <summary> /// Uncurry a three parameter function /// </summary> public static Func <T1, T2, T3, T4> Uncurry <T1, T2, T3, T4>(this Func <T1, Func <T2, Func <T3, T4> > > func) { return(Fun.Uncurry(func)); }