1.8 参数

为了理解信息是如何传递给函数的,我们再来看熟悉的 2 加 2 示例。在 Lisp 中写法如下:

(+ 2 2)

如果对该表达式求值,回显区会显示数字 4。Lisp 解释器所做的就是对 + 后面的数字执行加法。

+ 相加的这些数字被称为函数 +参数(arguments)。这些数字是提供给函数、或者说传递(passed)给函数的信息。

“参数(argument)”一词源自数学用法,并非指人与人之间的争论;而是指传递给函数(本例中是 +)的信息。在 Lisp 中,函数的参数就是跟在函数后面的原子或列表。这些原子或列表求值后返回的值会被传递给函数。不同函数需要的参数数量不同,有些函数甚至完全不需要参数。3


Footnotes

(3)

追溯“argument”一词为何同时拥有数学和日常英语两种不同含义是件很有趣的事。根据《牛津英语词典》,该词源自拉丁语,意为“阐明、证明”;沿一条脉络演变后,意为“作为证据提出的依据”,即“提供的信息”,这也对应了它在 Lisp 中的含义。而在另一条演变脉络中,它意为“以可能引发反驳的方式主张”,进而演变为“争论”之意。(注意,英语单词可以同时拥有两个不同定义,而在 Emacs Lisp 中,一个符号不能同时拥有两个不同的函数定义。)