-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathex_2_022.scm
32 lines (29 loc) · 1.08 KB
/
ex_2_022.scm
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
29
30
31
32
(define (square x) (* x x))
(define (square-list items)
(define (iter things answer)
(if (null? things)
answer
(iter (cdr things)
(cons (square (car things))
answer
)
)
)
)
(iter items null)
)
(square-list (list 1 2 3 4 5 6)); результат получен в порядке обратном желаемому, потому что при каждом вхождении в рекурсию мы прикрепляем к текущемому результату накопленый ответ
(define (square-list items)
(define (iter things answer)
(if (null? things)
answer
(iter (cdr things)
(cons answer
(square (car things))
)
)
)
)
(iter items null)
)
(square-list (list 1 2 3 4 5 6));в результате получена иерархия списков. На каждом шагу внутрь текущего списка добавлялся еще один список