SICP exercise 2.21
From Drewiki
Problem
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))
Output:
(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 <??> <??>))
Solution
Here's the complete first definition, plus the definition of square from our previous exercises:
(define (square x) (* x x)) (define nil (quote ())) (define (square-list items) (if (null? items) nil (cons (square (car items)) (square-list (cdr items)))))
Test:
(square-list (list 1 2 3 4))
Output:
(1 4 9 16)
And now the complete second definition:
(define (square-list items) (map square items))
Test:
(square-list (list 1 2 3 4))
Output:
(1 4 9 16)

