Функции высших порядков это вроде как тема из функционального программирования, но я видел это и в ООП-шном 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;
}
}
}