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