我正在研究方案,我刚刚遇到了我的第一个问题:
(define x (cons (list 1 2) (list 3 4)))
(length x)
3
为什么输出是 3 而不是 2?我已显示 x
((1 2) 3 4)
为什么是这样而不是((1 2) . (3 4))
?
谢谢。
也许这样更容易看到。
你有:
(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)
List是scheme的基本数据结构。Cons 用于制作一对对象。清单是一连串的缺点。例如。列表 (1 2 3 4) 与 (cons 1(cons 2(cons 3(cons 4 '())))) 相同。请参阅块指针表示以使其清楚