检查一对Scheme列表中是否只有两个元素的简单方法是什么?

时间:2013-08-09 02:47:18

标签: list scheme

我有'((5 1 0)),并希望我的条件为假,因为它包含2个以上的元素。 '对?'如果使用,函数给出#t。有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

pair?过程对于测试对象是否为cons-cell(并且所有非空列表都是cons-cells)非常有用。与length

一起使用
(define p1 '(5 1 0))
(and (pair? p1) (= (length p1) 2))
=> #f

(define p2 '(5 1))
(and (pair? p2) (= (length p2) 2))
=> #t

我冒昧地改变了这个例子,问题'((5 1 0))中的一个是带有单个元素的列表,恰好是另一个列表。