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 __?__ __?__ __?__ ))) (reverse-onto lst '())))