Scheme 程序对象操纵对象,也就是。Scheme 对象被组织成一组值的结构被称为类型。这一小节介绍 Scheme 语言中最基本的和最重要的类型。后续章节中会介绍更多的类型。

注意:由于 Scheme 的为 latent 类型的,此报告中类型的使用和其它语言语境中的使用并不相同,特别是和 manifest 类型的语言。

Booleans: boolean 用于表示真值,可以为 true 或者 false。 在 Scheme 中对应 “false” 的对象记为 #f, 对应 “true” 的对象记为 #t。 然而, 在大部分要使用 true 值的地方,任何不为 #f 的对象被视为 true。

数: Scheme 支持种类繁多的数类型,包括用于表示任意精度整数、有理数、复数以及各种非精确数的对象。

字符: Scheme字符对应于文本字符。更精确的说,它们与 Unicode 标准中标量的同构。

字符串: 字符串是字符组成的定长序列,因此可以表示任意的 Unicode 文本。

符号: 一个符号是一个用于表示一个字符串的对象,该字符串为符号的名字。和字符串不同,两个名字拼写一样的符号是不可区分的。符号在很多地方非常有用,如可以像其它语言中的枚举值那样使用。

序对和列表: 一个序对是一个包含两个部分的数据结构。 序对最常用来表示单链表,其第一个部分( “car” 部分)表示一个列表的第一个元素,第二个部分( “cdr” 部分)表示该列表的剩余部分。Scheme 中区分出了一个空列表,使用序对构成的链表的 cdr 链的最后一个 cdr 是一个空列表。

矢量: 和列表类似,是一个线性的数据结构,用于表示有限的任意对象序列。但是其中的对象通过整数的顺序索引引用。因此更适合用于需要对组成元素进行通过位置随机取值的情形。

过程: 在 Scheme 中过程也是值。