blob: b52f7b3001b3429a0803115906f62c6ce1356faf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#lang racket
(require sicp)
(define (reverse l)
(define (iter l p)
(cond
((null? l) p)
(else
(iter
(cdr l)
(cons (car l) p)))))
(iter l (list)))
(define (deep-reverse nested-list)
(define (iter l p)
(cond
((null? l) p)
((pair? (car l))
(iter (cdr l)
(cons (iter (car l) nil)
p)))
(else
(iter
(cdr l)
(cons (car l) p)))))
(iter nested-list nil))
(deep-reverse (list (list 1 2) (list 3 4)))
|