Функции высших порядков это вроде как тема из функционального программирования, но я видел это и в ООП-шном C#-пе. Что это такое и зачем оно нужно?
Функции высших порядков - это функции, которые принимают другие функции в качестве аргументов. Для того что бы осуществить технику каррирования, необходимо создать функцию высшего порядка. Кстати, в функциональном программировании все функции являются функциями высшего порядка. Приведу пример кода из поста про каррирование, где используется функция высшего порядка в виде делагата, который принимает другой делегат:
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<int, int> func; public static Action<Func<int, int>> action; } }
}