Scheme所有复合数据类型由此而生。基本函数cons(construct的简化)、car、cdr
pair? 与list?
Scheme语言提供了原始的粘接剂、基本函数cons(construct的简化),将两个任意类型的数据组合成一个有序数偶的复合数据,通常称之为点对(dotted pair,或pair,裘的翻译为序对)。格式是:(cons obj1 obj2)。点对/有序数偶的两个域,前者称为car域,后者称为cdr域[1]。基本函数car和cdr分别返回其点对参数的car域和cdr域。Scheme所有复合数据类型由此而生。例如:
(cons 1 2 ) ;;; →(1 . 2) ,由点分开的两个数
(cons 1.8 #t) ;;;→ (1.8 . #t),由点分开的1.8和true
(pair? (cons 1 2)) ;;; →#t ,属于pair?数据类型
(car (cons 1 3)) ;;;→1
仅仅使用cons将两个数据粘接起来,该点对只是一个有序数偶,并没有特别的含义,程序员可能准备定义分数,也可能准备定义复数。如同将两个人放在一起,谁能够确定他们准备组成什么,是夫妻、兄弟还是乐队?(将一群人有序地放在一起,程序员会意识到这是一个列表/list&