3
我正在使用Scheme语言的R5RS标准。Scheme:这两个列表是否具有相同的内存表示?
请看看这两个对象:
(1 (2 . 3))
(1 2 . 3)
他们有相同的内存交涉?像这样(A):
或者第一个不同?像这样(B):
所以......什么是正确的?
我正在使用Scheme语言的R5RS标准。Scheme:这两个列表是否具有相同的内存表示?
请看看这两个对象:
(1 (2 . 3))
(1 2 . 3)
他们有相同的内存交涉?像这样(A):
或者第一个不同?像这样(B):
所以......什么是正确的?
它们不同。第一列表被构造这样的,对应于“B”的数字:
(cons 1
(cons (cons 2 3)
'()))
> '(1 (2 . 3))
,而第二列表结构被构造这样的,其对应于“A”的数字:
(cons 1
(cons 2 3))
> '(1 2 . 3)
另外注意第二个不是正确的列表(意思是:以null
结尾的列表)。
感谢您的精彩解释:) –