我很难找到一种使用递归创建列表然后返回该列表作为基本情况的方法。具体来说,我将两个 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))))))