public void CurriedAdd() { Func <int, int> CurriedAdd(int a) => b => a + b; int add = CurriedAdd(2)(3); Console.WriteLine(add); }
static void Main() { const int a = 2, b = 1; Console.WriteLine("Curried addition: {0}", CurriedAdd(a)(b)); int[] integers = { 1, 2, 3, 4, 5 }; // * We can use the returned function... var containsInteger = CurriedContains(integers); // * ... and use it in different contexts Console.WriteLine("Does 2 exist in the collection? {0}", containsInteger(2)); Console.WriteLine("Does 10 exist in the collection? {0}", containsInteger(10)); string[] languages = { "C#", "F#", "ML", "Haskell" }; Console.WriteLine("Does ML exist in the collection? {0}", CurriedContains(languages)("ML")); Console.WriteLine("Does Java exist in the collection? {0}", CurriedContains(languages)("Java")); }
static void Main(string[] args) { const int a = 2, b = 1; Console.WriteLine("{0} + {1} = {2}", a, b, CurriedAdd(a)(b)); const int x1 = 2, x2 = 1, x3 = 4; Console.WriteLine("Curried addition: {0}", CurriedAdd(CurriedAdd(x1)(x2))(x3)); CurriedAdd(5)(7); Func <int, int> add_2 = CurriedAdd(2); Func <int, int> add_5 = CurriedAdd(5); Console.WriteLine("{0} + 2 = {1}", 1, add_2(1)); Console.WriteLine("{0} + 5 = {1}", 1, add_5(1)); Console.ReadLine(); }