2
我學習計劃,我剛纔遇到我的第一個問題:方案利弊和長度
(define x (cons (list 1 2) (list 3 4)))
(length x)
3
爲什麼輸出是3而不是2?我已經顯示x
((1 2) 3 4)
爲什麼會這樣而不是((1 2) . (3 4))
?
謝謝。
我學習計劃,我剛纔遇到我的第一個問題:方案利弊和長度
(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是方案的基本數據結構。缺陷用於製造一對物體。列表是利弊鏈。 例如。列表(1 2 3 4)與(cons 1(cons 2(cons 3(cons 4'()))))相同。 看到塊指針表示清楚
我沒有得到的是從'(cons 3(cons 3(cons 4'())))'到'(list a 3 4)''。 不應該以''()'結尾作爲列表嗎? – user1544128
不,列表是一個cons cell,它的cdr是一個列表,''()'是空列表。 –
參見http://en.wikibooks.org/wiki/Scheme_Programming/List_Operations –