Blame


1 665c255d 2023-08-04 jrmu (define (test-case actual expected)
2 665c255d 2023-08-04 jrmu (newline)
3 665c255d 2023-08-04 jrmu (display "Actual: ")
4 665c255d 2023-08-04 jrmu (display actual)
5 665c255d 2023-08-04 jrmu (newline)
6 665c255d 2023-08-04 jrmu (display "Expected: ")
7 665c255d 2023-08-04 jrmu (display expected)
8 665c255d 2023-08-04 jrmu (newline))
9 665c255d 2023-08-04 jrmu
10 665c255d 2023-08-04 jrmu
11 665c255d 2023-08-04 jrmu (define (element-of-set? x set)
12 665c255d 2023-08-04 jrmu (cond ((null? set) false)
13 665c255d 2023-08-04 jrmu ((equal? x (car set)) true)
14 665c255d 2023-08-04 jrmu (else (element-of-set? x (cdr set)))))
15 665c255d 2023-08-04 jrmu (define (adjoin-set x set)
16 665c255d 2023-08-04 jrmu (if (element-of-set? x set)
17 665c255d 2023-08-04 jrmu set
18 665c255d 2023-08-04 jrmu (cons x set)))
19 665c255d 2023-08-04 jrmu (define (intersection-set set1 set2)
20 665c255d 2023-08-04 jrmu (cond ((or (null? set1) (null? set2)) '())
21 665c255d 2023-08-04 jrmu ((element-of-set? (car set1) set2)
22 665c255d 2023-08-04 jrmu (cons (car set1)
23 665c255d 2023-08-04 jrmu (intersection-set (cdr set1) set2)))
24 665c255d 2023-08-04 jrmu (else (intersection-set (cdr set1) set2))))
25 665c255d 2023-08-04 jrmu (define (union-set set1 set2)
26 665c255d 2023-08-04 jrmu (cond ((null? set1) set2)
27 665c255d 2023-08-04 jrmu ((null? set2) set1)
28 665c255d 2023-08-04 jrmu ((element-of-set? (car set1) set2) (union-set (cdr set1) set2))
29 665c255d 2023-08-04 jrmu (else (cons (car set1) (union-set (cdr set1) set2)))))
30 665c255d 2023-08-04 jrmu
31 665c255d 2023-08-04 jrmu (test-case (union-set '(1 2 3 4 5) '(1 3 4)) '(2 5 1 3 4))
32 665c255d 2023-08-04 jrmu
33 665c255d 2023-08-04 jrmu