Это ты в контексте языков программирования? Тогда там ничего сложного нет, просто неименованная функция. Возможно, будет полезно ознакомиться с понятиями «Higher-Order Function» и «First-Class Citizen».
Если тебя интересует лямбда-исчисление, то кури соответствующую литературу.
Смотря откуда идти. Если можешь передать указатель на сравнивающую функцию в стандартную сишную библиотечную функцию qsort, то не понимаю в чем может быть проблема.
попробуй просто на практике. Запусти octave и сделай
quad(@(x) 2*sin(x),0,1)
вот тебе лямбда функция в виде sin(x). В то вермя как quad() рассчитан на принятие _имени_ объявленной функции.
То есть без лямбд надо было бы так:
function retval=f(x)
retval=2*sin(x);
end
quad(@f,0,1)
потом можешь заглянуть в мой тред говорите, можно это сделать на C? Хаха!!.
я сам не понимал профита, пока не наткнулся на практике на то, где они чуть ли не необходимы.
Скажи, что конкретно непонятно. Это только в постах про хаскель на хабре все сложно, на самом же деле лямбды - это очень удобно, компакто и просто. Ну, если знать, где применять. Просто пиши сюда или google://$LANGUAGE_OF_CHOICE lambdas
Ага. Вся функциональная обвязка реализована в основном обычными циклами, в крайнем случае - заоптимизированной хвостовой рекурсией. Дизайнеры языка не могут позволить себе допустить возможность вываливания какого-нибудь map с переполнением стека только потому, что под капотом тоже все должно быть функциональным.
А вообще - кэширование результатов, например. Снаружи чистая функция, а внутри var. Скастуй сюда любого хаскельщика и они тебе расскажут про чистое функциональное IO, например еще.