Lisp 解释器的执行方式

对表达式求值后,Lisp 解释器通常会 返回(return) 执行函数定义中指令后得到的结果, 或者放弃执行该函数并输出错误信息。 (解释器也可能跳转到其他函数,或陷入无限循环重复执行。这类情况相对少见,我们可以暂时忽略。) 最常见的情况是解释器返回一个值。

在返回值的同时,解释器可能还会执行其他操作,例如移动光标或复制文件。 这类额外操作被称为 副作用(side effect)。 在我们看来很重要的操作(比如打印结果),对 Lisp 解释器而言往往只是副作用。 学习使用副作用相对简单。

总而言之,对符号表达式求值通常会让 Lisp 解释器返回一个值, 并可能执行一个副作用;否则就会触发错误。