2012-11-26 161 views
4

我正在讀這本書叫小謀士爲什麼第二個參數必須是一個列表

在讀之前,我讀完了前三章SICP

我的問題是,爲什麼第二個參數必須是列表

然而,(cons a b)作品對於所有的值A和B以及

(car (cons a b)) =一個

(cdr (cons a b)) = B

+1

這只是一個計劃/ Lisp的一個列表或者是零,或'cons'約定其「cdr」又是一個列表。 –

回答

4

的第二個參數cons不是一定列表。這是一個列表只有如果你是,建立一個清單(正確或否則)。這是完全有效的,如果一個cons細胞的cdr部分不是列表,例如,建築物的關聯列表時:

(define lookup-table (list (cons 'x 10) (cons 'y 20) (cons 'z 30))) 
(assoc 'z lookup-table) 
=> '(z . 30) 
相關問題