]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ch2_3_3_ordered.rkt
Merge branch 'master' of github.com:vu3rdd/sicp
[sicp.git] / src / sicp / ch2_3_3_ordered.rkt
1 #lang racket
2 ;; sets as ordered lists.
3
4 (define (element-of-set? x set)
5   (cond ((null? set) #f)
6         ((= (car set) x) #t)
7         ((> (car set) x) #f)
8         (else (element-of-set? x (cdr set)))))
9
10 (define (intersection-set set1 set2)
11   (cond ((or (null? set1) 
12              (null? set2)) '())
13         ((= (car set1) 
14             (car set2)) 
15          (cons (car set1) (intersection-set (cdr set1) 
16                                             (cdr set2))))
17         ((< (car set1) (car set2)) (intersection-set (cdr set1) set2))
18         ((> (car set1) (car set2)) (intersection-set set1 (cdr set2)))))