SICP_2.21-2.23

Posted lan126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SICP_2.21-2.23相关的知识,希望对你有一定的参考价值。

 1 #lang racket
 2 
 3 ;;;;;;;;;;;;;;;;;;;2.21
 4 (define (square-list items)
 5   (if (null? items)
 6       null
 7       (cons (square (car items))
 8             (square-list (cdr items)))))
 9 
10 (define (square x)
11   (* x x))
12 ;;
13 (define (square-list2 items)
14   (map square items))
15 
16 ;;;;test
17 (square-list (list 1 2 3 4))
18 (square-list2 (list 1 2 3 4))
19 
20 ;;;;;;;;;;;;;;;;;;;;2.22
21 (define (square-list3 items)
22   (define (iter things answer)
23     (if (null? things)
24         answer
25         (iter (cdr things)
26               (append answer
27                       (list (square (car things)))))))
28   (iter items ()))
29 
30 ;;test
31 (square-list3 (list 1 2 3 4))
32 
33 ;;;;;;;;;;;;;;;;;;;;2.23
34 (define (for-each proc items)
35   (cond ((not (null? items))
36          (proc (car items))
37          (for-each proc (cdr items)))))
38 
39 ;;test
40 (for-each (lambda (x) (newline) (display x)) (list 57 321 88))

 

以上是关于SICP_2.21-2.23的主要内容,如果未能解决你的问题,请参考以下文章

SICP_3.25

SICP_3.27

SICP_3.24

SICP_3.26

SICP_3.7-3.8

SICP_2.50-2.51