2. 函数的表示
接下来,我们定义一套表示函数的符号。函数形如(lambda (p1 ... pn) e)
,其中p1 ... pn
是原子类型,称为参数(parameter,形参),e
是一个表达式(函数体)。如果一个表达式的第一个元素是如上所述的表达式,则(这个表达式)被称为函数调用,其形式如下:
((lambda (p1 ... pn) e) a1 ... an)
p1 ... pn,形参
a1 ... an,实参
它是按如下方式计算(调用结果)的:每个表达式ai
先被求值,然后表达式e
被求值。当e
在求值过程中,出现在e
中的pi
的值是对应的ai
在最近一次函数调用中的值。
> ((lambda (x) (cons x '(b))) 'a)
(a b)
> ((lambda (x y) (cons x (cdr y)))
'z '(a b c))
(z b c)
译者注:
- 在第一个表达式求值时:首先关联
x = 'a
,然后将x
代入表达式(cons x '(b))
中。 - 在第二个表达式求值时:首先关联
x = 'z
,y = '(a b c)
,然后将x
和y
代入表达式(cons x (cdr y))
中。