首先要给出的是使用 cons
定义的 square-list
,这个函数和书本 70 页的 scale-list
函数很相似:
;;; 21-square-list-using-cons.scm
(define (square-list items)
(if (null? items)
'()
(cons (square (car items))
(square-list (cdr items)))))
测试:
1 ]=> (square-list (list 1 2 3 4))
;Value 11: (1 4 9 16)
第二个 square-list
定义使用 map
函数,它和书本 71 页的 scale-list
函数很相似:
;;; 21-square-list-using-map.scm
(define (square-list items)
(map square items))
测试:
1 ]=> (square-list (list 1 2 3 4))
;Value 11: (1 4 9 16)