First we define the higher order function fold-left
(define fold-left
(lambda (f nil xs)
(if (null? xs)
nil
(fold-left f (f (car xs) nil) (cdr xs)))))
Then reverse is simple
(define reverse
(lambda (xs)
(fold-left cons '() xs)))