Scheme:点对(dotted pair,或pair)

本文介绍了 Scheme 语言中的点对(dotted pair)概念,它是 Scheme 中所有复合数据类型的基石。通过基本函数 `cons`、`car` 和 `cdr`,可以创建和操作点对。点对可以用来构造列表,列表是 Scheme 中重要的数据结构。文章讨论了 `pair?` 和 `list?` 的区别,并解释了如何使用它们构造不同的数据结构,还提到了符号数据的表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值