Exercise 2.21. The procedure square-list takes a list of numbers as argument and returns a list of the squares of those numbers.
(square-list (list 1 2 3 4))
(1 4 9 16)
Here are two different definitions of square-list. Complete both of them by filling in the missing expressions:
(define (square-list items)
(if (null? items)
nil
(cons <??> <??>)))
(define (square-list items)
(map <??> <??>))
(define (square-list items)
(if (null? items)
'()
(cons (square (car items))
(square-list (cdr items)))))
(define (square-list-2 items)
(map (lambda (item) (square item)) items))
;;; tests begin
(load "../testframe.scm")
(let ((lst (list 2 3 4 5 6)))
(assertequal? (square-list lst)
(square-list-2 lst)))