Chapter 2 总结 (Summary)

  1. Lisp 是一种交互式语言。如果你在顶层输入一个表达式, Lisp 会显示它的值。
  2. Lisp 程序由表达式组成。表达式可以是原子,或一个由操作符跟着零个或多个实参的列表。前序表示法代表操作符可以有任意数量的实参。
  3. Common Lisp 函数调用的求值规则: 依序对实参从左至右求值,接着把它们的值传入由操作符表示的函数。 quote 操作符有自己的求值规则,它完封不动地返回实参。
  4. 除了一般的数据类型, Lisp 还有符号跟列表。由于 Lisp 程序是用列表来表示的,很轻松就能写出能编程的程序。
  5. 三个基本的列表函数是 cons ,它创建一个列表; car ,它返回列表的第一个元素;以及 cdr ,它返回第一个元素之后的所有东西。
  6. 在 Common Lisp 里, t 表示逻辑 ,而 nil 表示逻辑 。在逻辑的上下文里,任何非 nil 的东西都视为 。基本的条件式是 ifandor 是相似的条件式。
  7. Lisp 主要由函数所组成。可以用 defun 来定义新的函数。
  8. 自己调用自己的函数是递归的。一个递归函数应该要被想成是过程,而不是机器。
  9. 括号不是问题,因为程序员通过缩排来阅读与编写 Lisp 程序。
  10. 基本的 I/O 函数是 read ,它包含了一个完整的 Lisp 语法分析器,以及 format ,它通过字符串模板来产生输出。
  11. 你可以用 let 来创造新的局部变量,用 defparameter 来创造全局变量。
  12. 赋值操作符是 setf 。它的第一个实参可以是一个表达式。
  13. 函数式编程代表避免产生副作用,也是 Lisp 的主导思维。
  14. 基本的迭代操作符是 do
  15. 函数是 Lisp 的对象。可以被当成实参传入,并且可以用 lambda 表达式来表示。
  16. 在 Lisp 里,是数值才有类型,而不是变量。