Reverse Liste in Racket in O (n)

Ich muss eine rekursive Funktion in Schema schreiben, die eine Liste von Atomen aufnimmt und diese in linearer Zeit umkehrt. Ich darf nur define, lambda, cons, car, cdr, cond, let und null verwenden. . Folgendes habe ich bisher:

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

Also wenn ich die Funktion aufrufe:

(reverse '(a b c d))

Ich erhalte die folgende Ausgabe:

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

Jede Hilfe wäre sehr dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage