Adición arbitraria de precisión utilizando listas de dígitos.

Lo que estoy tratando de hacer es tomar dos listas y sumarlas juntas, ya que cada lista es un número entero.

(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)

Sé que el problema gira en torno a mi recursión, invirtí el orden de las listas para permitir un proceso más fácil, sin embargo, no puedo entender cómo agregar mi valor de módulo (valor transferido) al siguiente objeto de la lista . ¿Cómo puedo hacer esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta