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 19.2.2) (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 ;sort : (X X -> boolean) (listof X) -> (listof X)
5 12687dd9 2023-08-04 jrmu ;Given a-lox and op, sort the SchemeData.
6 12687dd9 2023-08-04 jrmu
7 12687dd9 2023-08-04 jrmu ;insert : (X X -> boolean) X (listof X) -> (listof X)
8 12687dd9 2023-08-04 jrmu ;Given op, an-x and a-lox, insert an-x in the proper position in a-lox by using op.
9 12687dd9 2023-08-04 jrmu (define (sort-lox op a-lox)
10 12687dd9 2023-08-04 jrmu (local ((define (sort op a-lox)
11 12687dd9 2023-08-04 jrmu (cond
12 12687dd9 2023-08-04 jrmu [(empty? a-lox) empty]
13 12687dd9 2023-08-04 jrmu [(cons? a-lox) (insert op
14 12687dd9 2023-08-04 jrmu (first a-lox)
15 12687dd9 2023-08-04 jrmu (sort op (rest a-lox)))]))
16 12687dd9 2023-08-04 jrmu (define (insert op an-x a-lox)
17 12687dd9 2023-08-04 jrmu (cond
18 12687dd9 2023-08-04 jrmu [(empty? a-lox) (cons an-x empty)]
19 12687dd9 2023-08-04 jrmu [(op an-x (first a-lox)) (cons an-x a-lox)]
20 12687dd9 2023-08-04 jrmu [else (cons (first a-lox) (insert op an-x (rest a-lox)))])))
21 12687dd9 2023-08-04 jrmu (sort op a-lox)))
22 12687dd9 2023-08-04 jrmu
23 12687dd9 2023-08-04 jrmu (define-struct ir (name price))
24 12687dd9 2023-08-04 jrmu
25 12687dd9 2023-08-04 jrmu ;An inventory record (ir) is a structure
26 12687dd9 2023-08-04 jrmu ;(make-ir n p)
27 12687dd9 2023-08-04 jrmu ;where n is a symbol and p is a number.
28 12687dd9 2023-08-04 jrmu
29 12687dd9 2023-08-04 jrmu ;An inventory is a (listof ir).
30 12687dd9 2023-08-04 jrmu
31 12687dd9 2023-08-04 jrmu ;<ir? : ir ir -> boolean
32 12687dd9 2023-08-04 jrmu ;Given ir1 and ir2, returns true if the price of ir1 is less than that of ir2.
33 12687dd9 2023-08-04 jrmu (define (<ir? ir1 ir2)
34 12687dd9 2023-08-04 jrmu (< (ir-price ir1)
35 12687dd9 2023-08-04 jrmu (ir-price ir2)))
36 12687dd9 2023-08-04 jrmu
37 12687dd9 2023-08-04 jrmu ;>ir? : ir ir -> boolean
38 12687dd9 2023-08-04 jrmu ;Given ir1 and ir2, returns true if the price of ir1 is less than that of ir2.
39 12687dd9 2023-08-04 jrmu
40 12687dd9 2023-08-04 jrmu (define (>ir? ir1 ir2)
41 12687dd9 2023-08-04 jrmu (> (ir-price ir1)
42 12687dd9 2023-08-04 jrmu (ir-price ir2)))
43 12687dd9 2023-08-04 jrmu
44 12687dd9 2023-08-04 jrmu
45 12687dd9 2023-08-04 jrmu
46 12687dd9 2023-08-04 jrmu (define ir-list (list (make-ir 'WaterGun 5.50)
47 12687dd9 2023-08-04 jrmu (make-ir 'PencilCase 1.25)
48 12687dd9 2023-08-04 jrmu (make-ir 'Eraser 0.75)
49 12687dd9 2023-08-04 jrmu (make-ir 'CellPhone 25.50)
50 12687dd9 2023-08-04 jrmu (make-ir 'Doll 8.75)
51 12687dd9 2023-08-04 jrmu (make-ir 'Helmet 15.75)))
52 12687dd9 2023-08-04 jrmu