S-99-05


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