(define (element-of-set? x set)
(cond ((or (null? set) (> (car set) x)) #f)
((= x (car set)) #t)
(else (element-of-set? x (cdr set)))))
(define (intersaction-set set1 set2)
(cond ((or (null? set1) (null? set2)) '())
((= (car set1) (car set2))
(cons (car set1) (intersaction-set (cdr set1) (cdr set2))))
((< (car set1) (car set2))
(intersaction-set (cdr set1) set2))
(else (intersaction-set set1 (cdr set2)))))
;2.61
(define (adjoin-set x set)
(cond ((or (null? set) (> (car set) x)) (cons x set))
((= (car set) x) set)
(else (cons (car set) (adjoin-set x (cdr set))))))
;2.62
(define (union-set set1 set2)
(cond ((null? set1) set2)
((null? set2) set1)
(else
(let ((x1 (car set1))
(x2 (car set2)))
(cond ((= x1 x2) (cons x1 (union-set (cdr set1) (cdr set2))))
((< x1 x2) (cons x1 (union-set (cdr set1) set2)))
(else (cons x2 (union-set set1 (cdr set2)))))))))
集合作爲排序的表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.