public Option <Student> AddNewStudent(string firstName, string lastName, int age, string gender) { var optionName = Name.Create(firstName, lastName); var optionAge = Age.Create(age); var optionGender = Gender.Create(gender); AddStudentApply <Name, Age, Gender, Option <Student> > method = Add; return(method.Curry() .Apply(optionName) .Apply(optionAge) .Apply(optionGender)); }
public static Func <T1, Func <T2, Func <T3, R> > > Curry <T1, T2, T3, R>(this AddStudentApply <T1, T2, T3, R> func) => t1 => t2 => t3 => func(t1, t2, t3);