您的位置:首页 > 其它

SICP 习题2.21 square-list

2016-06-12 21:29 197 查看

print-list的时候写了三个if,是个愚蠢的地方

(define (map-a proc items)
(if (null? items)
'()
(cons (proc (car items))
(map-a proc (cdr items)))))

(define nl newline)

(define print-list
(lambda (s)
(if (not (null? s)) (display (car s)))
(if (not (null? s)) (display " "))
(if (not (null? s)) (print-list (cdr s)))))

(nl)
(print-list (map-a abs '(-10 2.5 -11.6 17)))

(define square
(lambda (x) (* x x)))

(define (square-list-a items)
(if (null? items)
'()
(cons (square (car items)) (square-list-a (cdr items)))))

(define (square-list-b items)
(map-a square items))

(nl)
(print-list (square-list-a '(1 2 3 4)))
(nl)
(print-list (square-list-b '(1 2 3 4)))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: