sicp_exercices/2.3/2.59.scm
Yann Esposito (Yogsototh) 8b3033b8c5 2.59 finished (set union)
2011-09-26 13:27:28 +02:00

32 lines
755 B
Scheme

(load "displaylib.scm")
(title "Exercise 2.59")
(print "
Implement the union-set operation for the unordered-list representation of sets.
")
; -- given lib --
(define (element-of-set? x set)
(cond ((null? set) false)
((equal? x (car set)) true)
(else (element-of-set? x (cdr set)))))
(define (adjoin-set x set)
(if (element-of-set? x set)
set
(cons x set)))
; -- START --
(define (union-set e f)
(cond ((null? e) f)
((null? f) e)
((element-of-set? (car e) f)
(union-set (cdr e) f))
(else
(cons (car e) (union-set (cdr e) f)))))
(define set1 '(a b c))
(define set2 '(a x y))
(display "(union-set set1 set2)")(newline)
(display (union-set set1 set2))(newline)