鉴于
#;> (cons (cons 1 2) 3)
((1 . 2) . 3)
当我们尝试
时#;> (cons 3 (cons 1 2))
(3 1 . 2)
使用.
的地方是什么?这些结构的记忆表示是什么?
答案 0 :(得分:3)
Scheme实现通常以列表形式打印看起来像列表的内容:
-> (cons 1 (cons 2 '()))
'(1 2)
在您的示例中,如果(cons 3 (cons 1 2))
不是最后一个2
,则2
将是一个列表。因此,您的实现会尽力将其打印为列表,直到{{1}}。另一个示例不包含任何看起来像列表的部分,因此它只是作为嵌套对打印。