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も正常に動作しない。