Lisp - Lambda 函数



有时你可能只需要在程序的一个地方使用一个函数,而这个函数非常简单,以至于你可能不会给它命名,或者不想将其存储在符号表中,而是宁愿编写一个未命名的或匿名函数。

LISP允许你编写匿名函数,这些函数只有在程序中遇到时才会被求值。这些函数被称为Lambda 函数

你可以使用lambda表达式创建这样的函数。lambda表达式的语法如下:

(lambda (parameters) body)

lambda 表达式不能被求值,它只能出现在 LISP 期望找到函数的地方。

示例

创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。

main.lisp

; create a lambda expression and print the result
(write ((lambda (a b c x)
   (+ (* a (* x x)) (* b x) c))
   4 2 9 3)
)

输出

执行代码后,将返回以下结果:

51

示例

更新名为 main.lisp 的源代码文件,并在其中键入以下代码。

main.lisp

; create a lambda expression and print the result
(write ((lambda (a b c x)
   (+ a b c x))
   4 2 9 3)
)

输出

执行代码后,将返回以下结果作为传递参数的和:

18

示例

更新名为 main.lisp 的源代码文件,并在其中键入以下代码。

main.lisp

; create a lambda expression and print the result
(write ((lambda (a b c x)
   (* a b c x))
   4 2 9 3)
)

输出

执行代码后,将返回以下结果作为传递参数的积:

216
lisp_functions.htm
广告