Blame


1 12687dd9 2023-08-04 jrmu ;; The first three lines of this file were inserted by DrScheme. They record metadata
2 12687dd9 2023-08-04 jrmu ;; about the language level of this file in a form that our tools can easily process.
3 12687dd9 2023-08-04 jrmu #reader(lib "htdp-intermediate-reader.ss" "lang")((modname 21.2.1) (read-case-sensitive #t) (teachpacks ((lib "draw.ss" "teachpack" "htdp"))) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ((lib "draw.ss" "teachpack" "htdp")))))
4 12687dd9 2023-08-04 jrmu (local ((define (f x) x))
5 12687dd9 2023-08-04 jrmu (build-list 4 f))
6 12687dd9 2023-08-04 jrmu
7 12687dd9 2023-08-04 jrmu (local ((define (f x) (+ 1 x)))
8 12687dd9 2023-08-04 jrmu (build-list 4 f))
9 12687dd9 2023-08-04 jrmu
10 12687dd9 2023-08-04 jrmu (local ((define (f x)
11 12687dd9 2023-08-04 jrmu (expt 10 (* -1
12 12687dd9 2023-08-04 jrmu (+ x 1)))))
13 12687dd9 2023-08-04 jrmu (build-list 4 f))
14 12687dd9 2023-08-04 jrmu
15 12687dd9 2023-08-04 jrmu ;evens : N [>=0] -> (listof N [>=0])
16 12687dd9 2023-08-04 jrmu Given n, evens creates a list of the first n even numbers.
17 12687dd9 2023-08-04 jrmu
18 12687dd9 2023-08-04 jrmu (define (evens n)
19 12687dd9 2023-08-04 jrmu (local ((define (evens n)
20 12687dd9 2023-08-04 jrmu (build-list n f))
21 12687dd9 2023-08-04 jrmu (define (f n)
22 12687dd9 2023-08-04 jrmu (* 2
23 12687dd9 2023-08-04 jrmu (+ 1 n))))
24 12687dd9 2023-08-04 jrmu (evens n)))
25 12687dd9 2023-08-04 jrmu
26 12687dd9 2023-08-04 jrmu
27 12687dd9 2023-08-04 jrmu Exercise 21.2.1. Use build-list
28 12687dd9 2023-08-04 jrmu
29 12687dd9 2023-08-04 jrmu to define evens, which consumes a natural number n and creates the list of the first n even numbers;
30 12687dd9 2023-08-04 jrmu
31 12687dd9 2023-08-04 jrmu to define tabulate from exercise 21.1.1; and
32 12687dd9 2023-08-04 jrmu
33 12687dd9 2023-08-04 jrmu to define diagonal, which consumes a natural number n and creates a list of lists of 0 and 1.
34 12687dd9 2023-08-04 jrmu Example:
35 12687dd9 2023-08-04 jrmu
36 12687dd9 2023-08-04 jrmu (equal? (diagonal 3)
37 12687dd9 2023-08-04 jrmu (list
38 12687dd9 2023-08-04 jrmu (list 1 0 0)
39 12687dd9 2023-08-04 jrmu (list 0 1 0)
40 12687dd9 2023-08-04 jrmu (list 0 0 1)))
41 12687dd9 2023-08-04 jrmu Use local if function definitions require auxiliary functions. Solution
42 12687dd9 2023-08-04 jrmu
43 12687dd9 2023-08-04 jrmu ;; build-list : N (N -> X) -> (listof X)
44 12687dd9 2023-08-04 jrmu ;; to construct (list (f 0) ... (f (- n 1)))
45 12687dd9 2023-08-04 jrmu (define (build-list n f) ...)