Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 Scheme 语言的 R5RS 标准。
请看一下这两个对象:
(1 (2 . 3))
(1 2 . 3)
它们是否具有相同的内存表示?像这样(一):
还是第一个不一样?像这样(B):
所以...什么是正确的?
他们是不同的。第一个列表是这样构造的,对应“B”图:
(cons 1 (cons (cons 2 3) '())) > '(1 (2 . 3))
而第二个列表结构是这样构造的,对应于“A”图:
(cons 1 (cons 2 3)) > '(1 2 . 3)
另请注意,第二个不是正确的列表(意思是:以 结尾的列表null)。
null