добавление произвольной точности с использованием списков цифр

Что я'Я пытаюсь сделать, это взять два списка и сложить их вместе, как каждый список является целым числом.

(define (reverse lst)
 (if (null? lst)
  '()
  (append (reverse (cdr lst)) 
      (list (car lst)))))

(define (apa-add l1 l2)
  (define (apa-add-help l1 l2)
    (cond ((and (null? l1) (null? l2)) '())
      ((null? l1) (list (+ (apa-add-help '() (cdr l2)))))
      ((null? l2) (list (+ (apa-add-help (cdr l1) '()))))

      ((>= (+ (car l1) (car l2)) 10) 
       (append (apa-add-help (cdr l1) (cdr l2))               
               (list (quotient (+ (car l1) (car l2)) 10))
               (list (modulo (+ (car l1) (car l2)) 10)))) ;this is a problem

      (else (append (apa-add-help (cdr l1) (cdr l2))
                    (list (+ (car l1) (car l2)))))))

(apa-add-help (reverse l1) (reverse l2)))

(apa-add '(4 7 9) '(7 8 4))
>'(1 1 1 5 1 3)

Я знаю, что проблема связана с моей рекурсией, я изменил порядок списков, чтобы упростить процесс, однако я не могу »Кажется, я не понимаю, как добавить мое значение по модулю (перенесенное значение) к следующему объекту в списке. Как я могу это сделать?

Ответы на вопрос(1)

Ваш ответ на вопрос