Blame


1 665c255d 2023-08-04 jrmu ;; Exercise 2.27. Modify your reverse procedure of exercise 2.18 to produce a deep-reverse procedure that takes a list as argument and returns as its value the list with its elements reversed and with all sublists deep-reversed as well. For example,
2 665c255d 2023-08-04 jrmu
3 665c255d 2023-08-04 jrmu (define (deep-reverse tree)
4 665c255d 2023-08-04 jrmu (cond ((null? tree) ...)
5 665c255d 2023-08-04 jrmu ((not (pair? tree)) ...)
6 665c255d 2023-08-04 jrmu (else ...)))
7 665c255d 2023-08-04 jrmu
8 665c255d 2023-08-04 jrmu (define x (list (list 1 2) (list 3 4)))
9 665c255d 2023-08-04 jrmu
10 665c255d 2023-08-04 jrmu x
11 665c255d 2023-08-04 jrmu ((1 2) (3 4))
12 665c255d 2023-08-04 jrmu
13 665c255d 2023-08-04 jrmu (reverse x)
14 665c255d 2023-08-04 jrmu ((3 4) (1 2))
15 665c255d 2023-08-04 jrmu
16 665c255d 2023-08-04 jrmu (deep-reverse x)
17 665c255d 2023-08-04 jrmu ((4 3) (2 1))