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