SICP 問題 2.26(append/cons/listを、リストに適用した場合の違い)
【問題】
x と y をリストとして定義したとしよう。
(define x (list 1 2 3)) (define y (list 4 5 6))
次の式のそれぞれの評価に応じて、解釈系が印字する結果は何か。
(append x y) (cons x y) (list x y)
【解答】
append はリストのトップレベルの要素をバラけさせて連結するので「(1 2 3 4 5 6)」、
cons は第2引数に指定したリストの先頭に第1引数のリストを挿入する?ので「((1 2 3) 4 5 6)」、
list は引数を全て要素としてリストを生成するので「((1 2 3) (4 5 6) )」と予想。
では実験。
gosh> (append x y)
(1 2 3 4 5 6)
gosh> (cons x y)
((1 2 3) 4 5 6)
gosh> (list x y)
((1 2 3) (4 5 6) )
gosh>
予想通り。
以上!