我需要在 Scheme (Racket) 中编写一个函数,它需要两个不一定相等长度的列表并返回一个列表,其中每个元素是两个列表中相同索引的元素的总和。如果列表的长度不相等,则较短的应附加到自身,直到达到较长的长度。例如:
=> (addLists '(1 2 3 4) '(1 2))
(2 4 4 6)
=> (addLists '(1 2 3 4) '(1 2 3 4 5))
(2 4 6 8 6)
到目前为止,我能够编写一个函数来完成等长列表,但问题在于如何增加此函数中较短列表的长度(或使用获取列表和大小并扩展的辅助函数它正确)。
(define (sumListPairs lst1 lst2)
(if (null? lst1) null
(cons (+ (car lst1) (car lst2))
(sumListPairs (cdr lst1) (cdr lst2)))))
将不胜感激任何帮助,谢谢。