Esempio n. 1
0
        public void CurriedAdd()
        {
            Func <int, int> CurriedAdd(int a) => b => a + b;

            int add = CurriedAdd(2)(3);

            Console.WriteLine(add);
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        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();
        }