Это зависит от того, на какую часть вашего вопроса вы поставили акцент. Если это определенно свойство анонимности для анонимных функций, то, действительно, единственным ответом является то, что они являются несвязанными значениями . Если вы говорите о функциях в целом, анонимные функции, вероятно, являются наиболее заметным проявлением использования лямбда-исчисления в функциональной среде для аппликативных языков .
Фактически, с точки зрения лямбда-исчисления, лямбда-выражения - это очень синтаксическая конструкция, используемая для создания привязок. Напомним обозначения, используемые в лямбда-исчислении:
λf.λx.fx
где и связаны внутри внутреннего выражения . Каждое лямбда-выражение там определяет привязку и, таким образом, действует как локальный контекст для привязок имен.х ф хfxfx
Язык обычно предлагает способы, такие как let
(ML как языки, схема) или define
(схема) для создания привязок, используемых на верхнем уровне (или внутри синтаксических конструкций, более сложных, чем функции, такие как модули или объекты), но единственный необходимый инструмент для привязки это лямбда на нижних уровнях.
Если вы посмотрите на языки как схемы или диалекты Лиспа, их самообразование - это лямбда-исчисление, а многие специальные формы - это действительно покрытые сахаром лямбды.
Для конкатенативных языков история немного другая. Лямбды не нужны, а на самом деле контрпродуктивны. Какой смысл определять анонимные лямбды, когда все является функцией ?
Каким-то образом существует двойственность между этими двумя видами мангуагов. Последняя сфокусирована на комбинации функций без точек и, таким образом, пытается представить все как функции, тогда как первая работает над более сложным исчислением и прилагает усилия к тому, чтобы функции были значениями первого класса, как и любые другие значения языка. В этом отношении можно было видеть лямбды как результат этих усилий.
Некоторые указатели на тему введены (плохо) в этом ответе: