[译] Lisp之根源(十)

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 = 'zy = '(a b c),然后将xy代入表达式(cons x (cdr y))中。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容