在 Lisp 里, 是函数,然而如 (+ 2 3) 的表达式,是函数调用。

    当 Lisp 对函数调用求值时,它做下列两个步骤:

    如果实参本身是函数调用的话,上述规则同样适用。以下是当 (/ (- 7 1) (- 4 2)) 表达式被求值时的情形:

    1. Lisp 对 (- 7 1) 求值: 7 求值为 7 , 求值为 1 ,它们被传给函数 - ,返回 6
    2. 数值 6 与 被传入函数 / ,返回 3

    Note

    逃离麻烦

    如果你试着输入 Lisp 不能理解的东西,它会打印一个错误讯息,接着带你到一种叫做中断循环(break loop)的顶层。 中断循环给予有经验的程序员一个机会,来找出错误的原因,不过最初你只会想知道如何从中断循环中跳出。 如何返回顶层取决于你所使用的 Common Lisp 实现。在这个假定的实现环境中,输入 :abort 跳出:

    一个不遵守 Common Lisp 求值规则的操作符是 quotequote 是一个特殊的操作符,意味着它自己有一套特别的求值规则。这个规则就是:什么也不做。 quote 操作符接受一个实参,并完封不动地返回它。

    为了方便起见,Common Lisp 定义 ' 作为 quote 的缩写。你可以在任何的表达式前,贴上一个 ' ,与调用 quote 是同样的效果:

    使用缩写 ' 比使用整个 表达式更常见。