Blame


1 665c255d 2023-08-04 jrmu (define (map proc items)
2 665c255d 2023-08-04 jrmu (if (null? items)
3 665c255d 2023-08-04 jrmu '()
4 665c255d 2023-08-04 jrmu (cons (proc (car items))
5 665c255d 2023-08-04 jrmu (map proc (cdr items)))))
6 665c255d 2023-08-04 jrmu
7 665c255d 2023-08-04 jrmu (define (scale-list items factor)
8 665c255d 2023-08-04 jrmu (map (lambda (x) (* x factor))
9 665c255d 2023-08-04 jrmu items))
10 665c255d 2023-08-04 jrmu
11 665c255d 2023-08-04 jrmu ;; Exercise 2.21. The procedure square-list takes a list of numbers as argument and returns a list of the squares of those numbers.
12 665c255d 2023-08-04 jrmu
13 665c255d 2023-08-04 jrmu (define (square-list-map nums)
14 665c255d 2023-08-04 jrmu (map (lambda (x) (* x x)) nums))
15 665c255d 2023-08-04 jrmu
16 665c255d 2023-08-04 jrmu (define (square-list-recurse nums)
17 665c255d 2023-08-04 jrmu (if (null? nums)
18 665c255d 2023-08-04 jrmu '()
19 665c255d 2023-08-04 jrmu (cons (* (car nums) (car nums))
20 665c255d 2023-08-04 jrmu (square-list-recurse (cdr nums)))))
21 665c255d 2023-08-04 jrmu
22 665c255d 2023-08-04 jrmu (define (test-case actual expected)
23 665c255d 2023-08-04 jrmu (load-option 'format)
24 665c255d 2023-08-04 jrmu (newline)
25 665c255d 2023-08-04 jrmu (format #t "Actual: ~A Expected: ~A" actual expected))
26 665c255d 2023-08-04 jrmu
27 665c255d 2023-08-04 jrmu (test-case (square-list-recurse (list 1 2 3 4)) '(1 4 9 16))
28 665c255d 2023-08-04 jrmu (test-case (square-list-map (list 1 2 3 4)) '(1 4 9 16))
29 665c255d 2023-08-04 jrmu