The Little Schemer 笔记(第一章)
原子
原子不是序对,也不是空表
(define atom?
(lambda (x)
(and (not (pair? x))
(not (null? x)))))
除了空表和序对,就只有数字和符号。
表
原子包含在括号里就是表。
在 Scheme 中,数据的书面表示决定了数据在演算中的一切行为,所以上述形式定义是合适的。
空表()
也是表。
S 表达式
原子和表。
Car
只能作用于非空表
Cdr
只能作用于非空表,结果是另一个表。
Cons
接收两个参数,第二个参数是表,结果是一个表。
Null?
只作用于表。
类型汇总
基础类型
相等判断谓词 | 相等判断谓词 | ||
---|---|---|---|
未定义 | 序对 pair? | 数字 number? | = |
只有() 一个实例 | 空表 null? | 符号 symbol? | eq? |
eq? 接收两个非数字原子。
派生类型
表 list?,
- 空表是表
- 以空表结尾的嵌套序列是表