再帰を使用してリストを作成し、そのリストをベースケースのために返すという方法で私の頭を折り返すのに問題があります。具体的には、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))))))
ありがとう、もちろんそれはとても簡単です!何らかの理由で、私が '()のようなものを出力すると、構築されたリストが出力されるとは思っていませんでした。(私はちょうど'()を出力すると思っていました) – Vance
この回答が役に立った場合は、それを受け入れることを検討してください。 –