我正在尝试在方案中将两个数字(来自列表)相加,同时保留列表格式。但是,当用于计算的数字加起来大于或等于 10 时,我会得到不想要的结果。例如:
(define (reverse lst)
(if (null? lst)
'()
(append (reverse (cdr lst))
(list (car lst)))))
(define (apa-add lst1 lst2)
(cond ((null? lst1) lst2)
((null? lst2) lst1)
((>= (+ (car lst1) (car lst2)) 10)
(append (apa-add (cdr lst1) (cdr lst2))
(list (quotient(+ (car lst1) (car lst2)) 10))
(list (modulo (+ (car lst1) (car lst2)) 10))))
(else
(append (apa-add (cdr lst1) (cdr lst2))
(list (+ (car lst1) (car lst2)))))))
(apa-add (reverse '(4 4 5)) (reverse'(3 5 8)))
返回
'(7 9 1 3)
如何修改我的代码以修复此错误?我想使用一个语句,这样我就可以添加对下一次调用let
的评估 ,但我想不出该怎么做。(quotient (+ (car lst1) (car lst2)) 10)
(list (+ (car lst1) (car lst2)))