¿Cómo ordenar mi variable acumulada en este caso en Racket?

Estoy codificando con Racket por razones educativas.

Se me asignó una tarea en la que debería crear una función que, sin filtro, recibiría una lista como entrada y devolvería otra lista solo con los números pares de la primera lista.

Se me ocurrió esta definición recursiva de un proceso iterativo:

(define (add-even lista)
  (define (iter lista accu)
    (cond ((null? lista) accu)
          ((even? (car lista)) (iter (cdr lista)
                                     (cons (car lista) accu)))
          (else (iter (cdr lista) accu))))
  (iter lista empty))

Funciona bien. Sin embargo, obtengo el resultado en un orden inverso, por ejemplo:

(add-even '(1 2 3 4 5 6 7))
>> '(6 4 2)

¿Qué debo hacer para tener la salida en el mismo orden de aparición en la entrada?

Sé cómo hacerlo con una función inversa. Pero esa no es una forma muy eficiente ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta