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
結尾的列表)。
感謝您的精彩解釋:) –