Lisp 函数是可执行代码,与其他编程语言中的函数一样。与大多数语言不同,在 Lisp 中,函数本身也是 Lisp 对象。Lisp 中的非编译函数是一个 lambda 表达式:也就是一个列表,其第一个元素是符号 lambda(see Lambda 表达式)。
在大多数编程语言中,函数都必须有名字。而在 Lisp 中,函数本身并没有固有的名字。一个 lambda 表达式即使没有名字,也可以作为函数被调用;为强调这一点,我们也称其为anonymous function匿名函数(see 匿名函数)。Lisp 中的具名函数,只是一个在其函数槽中存有有效函数的符号(see 定义函数)。
大多数情况下,在 Lisp 程序的表达式里写下函数名,就会调用该函数。不过,你也可以在运行时构造或获取一个函数对象,然后使用原始函数 funcall 和 apply 来调用它。See 调用函数。