2.4.13 函数类型

和其他编程语言中的函数类似,Lisp 函数是一段可执行代码。不过和大多数语言不一样的是,Lisp 中的函数也是对象。在 Lisp 中的非编译函数是一个 lambda 表达式。lambda 函数是一个列表,但其第一个元素是符号 lambda。

在大多数的编程语言中,函数必须要有名字。但在 lisp 中,函数并不一定要有名称。一个lambda函数即使没有名字,也可以被称为函数;为了特地强调这一点,我们称这种函数为匿名函数。而具名函数仅仅是将一个合法的匿名函数和符号的函数槽绑定在一起的产物。

大多数时候,函数都可以通过它们的名字进行调用。不过,当你在运行时动态构造、获取,或者调用一个函数对象时,必须要使用基础的 funcall 和 apply 函数进行调用。

最后更新于