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))
原文:http://www.cnblogs.com/tclan126/p/6395556.html