lambda
表达式:有用的匿名性lambda
是匿名函数的符号,即没有名字的函数。每次使用匿名函数时,都需要包含它的整个体。
因此,
(lambda (arg) (/ arg 50))
是一个函数,返回将传递给它的arg
除以50的结果。
早些时候,例如,我们有一个函数multiply-by-seven
;它将其参数乘以7。这个函数类似,只是它将其参数除以50;而且,它没有名字。multiply-by-seven
的匿名等价物是:
(lambda (number) (* 7 number))
(See defun
宏.)
如果我们想将3乘以7,我们可以写:
(multiply-by-seven 3) \_______________/ ^ | | function argument
这个表达式返回21。
同样,我们可以写:
((lambda (number) (* 7 number)) 3) \____________________________/ ^ | | anonymous function argument
如果我们想将100除以50,我们可以写:
((lambda (arg) (/ arg 50)) 100) \______________________/ \_/ | | anonymous function argument
这个表达式返回2。将100传递给函数,该函数将该数字除以50。
See Lambda 表达式 in GNU Emacs Lisp 参考手册, 了解有关lambda
的更多信息。Lisp 和 lambda 表达式源于 Lambda 演算。