Blob


1 (element-of-set? x (adjoin-set x S))
2 (element-of-set? x (union-set S T))
3 (or (element-of-set? x S) (element-of-set? x T))
4 (element-of-set? x '())
5 (define (element-of-set? x set)
6 (cond ((null? set) false)
7 ((equal? x (car set)) true)
8 (else (element-of-set? x (cdr set)))))
9 (define (adjoin-set x set)
10 (if (element-of-set? x set)
11 set
12 (cons x set)))
13 (define (intersection-set set1 set2)
14 (cond ((or (null? set1) (null? set2)) '())
15 ((element-of-set? (car set1) set2)
16 (cons (car set1)
17 (intersection-set (cdr set1) set2)))
18 (else (intersection-set (cdr set1) set2))))
20 (define (union-set