-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2.61.scm
More file actions
25 lines (24 loc) · 732 Bytes
/
2.61.scm
File metadata and controls
25 lines (24 loc) · 732 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#lang scheme/base
(define (element-of-set? x set)
(cond ((null? set) #f)
((= x (car set)) #t)
((< x (car set)) #f)
(else (element-of-set? x (cdr set)))
)
)
(define (adjoin-set x set)
(cond ((null? set) (list x))
((< x (car set)) (cons x set))
(else (cons (car set) (adjoin-set x (cdr set))))
)
)
(define (union-set s1 s2)
(cond ((null? s1) s2)
((null? s2) s1)
((= (car s1) (car s2)) (cons (car s1) (union-set (cdr s1) (cdr s2))))
((< (car s1) (car s2)) (cons (car s1) (union-set (cdr s1) s2)))
((< (car s2) (car s1)) (cons (car s2) (union-set s1 (cdr s2))))
)
)
(define a (list 1 4 5 6 8 9))
(define b (list 1 2 3 4 7 10))