Что такое каррирование?

При прохождении курса C# Professional встретил такой термин как "каррирование". Кто-то может простыми словами и желательно с каким-то примером сказать мне что это такое?

Каррирование - это одна из трёх падаригм функционального программирования.

Термин каррирование означает преобразования одной функции, принимающей несколько аргументов в функцию, берущую свои аргументы по-одному. Так же есть обратный термин - декаррирование.

namespace Main
{
    using System;

    public class Program
    {
        public static void Main()
        {
            Console.WriteLine("Enter your number, please:");
            int myNumber = Convert.ToInt32(Console.ReadLine());

            MyAction.func = (number) => { return number; };
            MyAction.action = (number) => { Console.WriteLine($"\nThis number is: {MyAction.func.Invoke(myNumber)}"); };

            MyAction.action.Invoke(MyAction.func);
            Console.ReadKey();
        }
        public static class MyAction
        {
            public static Func func;
            public static Action<Func> action;
        }
    }
}