Обратный список в Ракетке за O (n)

Мне нужно написать рекурсивную функцию на схеме, которая берет список атомов и обращает его в обратном направлении за линейное время. Мне разрешено использовать только определение, лямбда, минусы, автомобиль, cdr, cond, let и null? , Вот что у меня так далеко:

(define reverse
  (lambda (lat)
    (cond
      ((null? lat) lat)
      (else (cons (reverse (cdr lat)) (cons (car lat) '()))))))

Поэтому, когда я вызываю функцию:

(reverse '(a b c d))

Я получаю следующий вывод:

'(() (((() 4) 3) 2) 1)

Любая помощь будет очень высоко ценится.

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

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