previous | index | next

A More Efficient Method of Reversing

List to be reversed (lst1)    Reversed list so far (lst2)
(1 2 3 4 5) ()
(2 3 4 5) (1)
(3 4 5) (2 1)
(4 5) (3 2 1)
(5) (4 3 2 1)
() (5 4 3 2 1)
     (define reverse
       (lambda (lst)
         (define reverse-onto
           (lambda (lst1 lst2)
             (if (null? lst1)
                 lst2
                 (reverse-onto ____________________
                               ____________________))))
         (reverse-onto lst '())))

previous | index | next