/// <summary> /// Creates a new three parameter action by partial applies the <paramref name="parameter"/> into the <paramref name="action"/> /// by using the <see cref="PartialApplication.PartialApply{T,T2,T3,T4}(Action{T,T2,T3,T4},T)"/> method. /// </summary> /// <typeparam name="T">The type of the first parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T2">The type of the second parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T3">The type of the third parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T4">The type of the fourth parameter of <paramref name="action"/>.</typeparam> /// <param name="action">The input function.</param> /// <param name="parameter">The first input parameter to partial apply.</param> /// <returns>Returns a partial applied action.</returns> public static Action <T2, T3, T4> PartialApply <T, T2, T3, T4>(this Action <T, T2, T3, T4> action, T parameter) => PartialApplication.PartialApply(action, parameter);
/// <summary> /// Creates a new non parameter action by partial applies the <paramref name="parameter"/>, <paramref name="parameter2"/>, <paramref name="parameter3"/> and <paramref name="parameter4"/> into the <paramref name="action"/> /// by using the <see cref="PartialApplication.PartialApply{T,T2,T3,T4}(Action{T,T2,T3,T4},T,T2,T3,T4)"/> method. /// </summary> /// <typeparam name="T">The type of the first parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T2">The type of the second parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T3">The type of the third parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T4">The type of the fourth parameter of <paramref name="action"/>.</typeparam> /// <param name="action">The input function.</param> /// <param name="parameter">The first input parameter to partial apply.</param> /// <param name="parameter2">The second input parameter to partial apply.</param> /// <param name="parameter3">The third input parameter to partial apply.</param> /// <param name="parameter4">The fourth input parameter to partial apply.</param> /// <returns>Returns a partial applied action.</returns> public static Action PartialApply <T, T2, T3, T4>(this Action <T, T2, T3, T4> action, T parameter, T2 parameter2, T3 parameter3, T4 parameter4) => PartialApplication.PartialApply(action, parameter, parameter2, parameter3, parameter4);
/// <summary> /// Creates a new single parameter action by partial applies the <paramref name="parameter"/> and <paramref name="parameter2"/> into the <paramref name="action"/> /// by using the <see cref="PartialApplication.PartialApply{T,T2,T3}(Action{T,T2,T3},T,T2)"/> method. /// </summary> /// <typeparam name="T">The type of the first parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T2">The type of the second parameter of <paramref name="action"/>.</typeparam> /// <typeparam name="T3">The type of the third parameter of <paramref name="action"/>.</typeparam> /// <param name="action">The input function.</param> /// <param name="parameter">The first input parameter to partial apply.</param> /// <param name="parameter2">The second input parameter to partial apply.</param> /// <returns>Returns a partial applied action.</returns> public static Action <T3> PartialApply <T, T2, T3>(this Action <T, T2, T3> action, T parameter, T2 parameter2) => PartialApplication.PartialApply(action, parameter, parameter2);
/// <summary> /// Creates a new non parameter action by partial applies the <paramref name="parameter"/> into the <paramref name="action"/> /// by using the <see cref="PartialApplication.PartialApply{T}(Action{T},T)"/> method. /// </summary> /// <typeparam name="T">The type of the parameter of <paramref name="action"/>.</typeparam> /// <param name="action">The input function.</param> /// <param name="parameter">The input parameter to partial apply.</param> /// <returns>Returns a partial applied action.</returns> public static Action PartialApply <T>(this Action <T> action, T parameter) => PartialApplication.PartialApply(action, parameter);
/// <summary> /// Creates a new three parameters function by partial applies the <paramref name="parameter"/> into the <paramref name="function"/> /// by using the <see cref="PartialApplication.PartialApply{T,T2,T3,T4, TResult}(Func{T,T2,T3,T4, TResult}, T)"/> method. /// </summary> /// <typeparam name="T">The type of the first parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="T2">The type of the second parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="T3">The type of the third parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="T4">The type of the fourth parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="TResult">The type of the value returned by <paramref name="function"/>.</typeparam> /// <param name="function">The input function.</param> /// <param name="parameter">The first input parameter to partial apply.</param> /// <returns>Returns a partial applied function.</returns> public static Func <T2, T3, T4, TResult> PartialApply <T, T2, T3, T4, TResult>(this Func <T, T2, T3, T4, TResult> function, T parameter) => PartialApplication.PartialApply(function, parameter);
/// <summary> /// Creates a new non parameter function by partial applies the <paramref name="parameter"/>, <paramref name="parameter2"/>, <paramref name="parameter3"/> and <paramref name="parameter4"/> into the <paramref name="function"/> /// by using the <see cref="PartialApplication.PartialApply{T,T2,T3,T4, TResult}(Func{T,T2,T3,T4, TResult}, T,T2,T3,T4)"/> method. /// </summary> /// <typeparam name="T">The type of the first parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="T2">The type of the second parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="T3">The type of the third parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="T4">The type of the fourth parameter of <paramref name="function"/>.</typeparam> /// <typeparam name="TResult">The type of the value returned by <paramref name="function"/>.</typeparam> /// <param name="function">The input function.</param> /// <param name="parameter">The first input parameter to partial apply.</param> /// <param name="parameter2">The second input parameter to partial apply.</param> /// <param name="parameter3">The third input parameter to partial apply.</param> /// <param name="parameter4">The fourth input parameter to partial apply.</param> /// <returns>Returns a partial applied function.</returns> public static Func <TResult> PartialApply <T, T2, T3, T4, TResult>(this Func <T, T2, T3, T4, TResult> function, T parameter, T2 parameter2, T3 parameter3, T4 parameter4) => PartialApplication.PartialApply(function, parameter, parameter2, parameter3, parameter4);