方案缺点和长度

时间:2013-01-10 12:29:59

标签: scheme maxlength cons

我正在学习计划,我刚刚遇到了第一个问题:

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

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

((1 2) 3 4)

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

感谢。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

列表是方案的基本数据结构。 Cons用于制作一对物体。列表是利弊链。 例如。 list(1 2 3 4)与(cons 1(cons 2(cons 3(cons 4'()))))相同。 请参阅块指针表示以使其清除