2

我正在研究方案,我刚刚遇到了我的第一个问题:

(define x (cons (list 1 2) (list 3 4)))
(length x)
3

为什么输出是 3 而不是 2?我已显示 x

((1 2) 3 4)

为什么是这样而不是((1 2) . (3 4))

谢谢。

4

2 回答 2

2

也许这样更容易看到。

你有:

(cons (list 1 2) (list 3 4))

如果你

(define one-two (list 1 2))

你有

(cons one-two (list 3 4))

这相当于

(cons one-two (cons 3 (cons 4 '())))

或者

(list one-two 3 4)

这是

((1 2) 3 4)
于 2013-01-10T12:42:16.137 回答
0

List是scheme的基本数据结构。Cons 用于制作一对对象。清单是一连串的缺点。例如。列表 (1 2 3 4) 与 (cons 1(cons 2(cons 3(cons 4 '())))) 相同。请参阅块指针表示以使其清楚

于 2013-01-12T10:01:37.730 回答