Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>В чём крутизна "функций высшего порядка"?
В замыкании контекста и в частичном применении.
ЭФ>Вон в Си тожем можно указатель на функцию передать в качестве аргумента как параметр для другой функции. Но никто это не пиарит активно, что это якобы сверхкруто.
Представь, у тебя есть функция f в Си, которая приминает указатель на функцию ℝ→ℝ. Ты можешь передать туда функцию sin или cos, например: f(sin) или f(cos). Но что если тебе надо передать туда функцию ℝ→ℝ, созданную из двухаргументной функции ℝ×ℝ→ℝ путём фиксации одного её параметра? Например, f( x ↦ atan2(1.0, x) ).
То же в отношении вернуть из функции функцию. Ты можешь из сишной функции вернуть указатель, но ты не можешь внутри этой функции динамически состряпать новую функцию подходящей сигнатуры, ты можешь только вернуть какую-то статически фиксированную функцию.