SICP問題2.22

square-listが逆の順に答えを作った理由は、cons する際に answer の前(左)に square した結果を追加しているためで、itemsの頭にあったものが右に、次のものがリストの左に入っていくため、並び順が逆になってしまう。

まずは修正後のsquare-listが動作を確認してみる。

(square-list (list 1 2 3 4))
; ((((() . 1) . 4) . 9) . 16)

ということで、(cons 値 リスト)だとリストが返って来るが、 (cons リスト 値)だと((リスト) . 値) が返って来る。ここで answer はリストで、squareの結果は値のため、一様なリスト構造は返ってこないため、修正後のsquare-listも正常に動作しない。