再帰を使用してリストを作成し、そのリストをベースケースに返す方法に頭を悩ませています。具体的には、2つの32ビット数値(x1とx2)をALUに入力し、それらをビットごとに(ALU1を介して)評価してから、結果の数値のリストを作成します。この再帰アルゴリズムの基本ケースは(null?x1)ですが、この時点で、結果のリストにアクセスするにはどうすればよいですか?スキーム内のリストは不変であることを知っているので、空のリストを作成して、結果のリストをそれに追加することはできません。何か助けはありますか?関数型プログラミングは初めてですので、よろしくお願いします。
(define ALU-helper
(lambda (selection sub x1 x2 carry-in n)
(if (null? x1)
(________?)
(cons
(ALU1 selection sub (car x1) (car x2) carry-in n)
(ALU-helper selection sub (cdr x1) (cdr x2) carry-in (- n 1))))))