В ответ на предыдущие ответы:
Важная вещь об анонимных функциях не в том, что они не требуют имени.
-Крытия - это отдельная концепция.
-Гигантская статья в Википедии не делает это более ясным.
Вот мой ответ в 3 частях:
1. Лямбда - это функция, которая также является выражением. Это важная вещь.
2. Многие языки, в которых реализованы так называемые «лямбды», добавляют синтаксический сахар , чтобы сделать написание этих коротких функций проще и быстрее, но это не обязательно.
3. Некоторые языки могут требовать, чтобы лямбда не имела никаких побочных эффектов . Это была бы более чистая лямбда в функциональном смысле.
Когда функция является выражением, это «первоклассный гражданин» в языке. Я могу сделать все важные вещи с ним:
x = lambda(){ return "Hello World"; }
doit( 1, 2, lambda(a,b){ return a > b; }, 3 )
x = (lambda(a){ return a+1; }) + 5 // type error, not syntax error
(lambda(a,b){ print(a); log(b); })( 1, 2 ) // () is valid operator here