home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d09xx / d0963.lha / SIOD / scm / sets.scm < prev    next >
Text File  |  1993-01-02  |  774b  |  26 lines

  1. (define (adjoin-set x set)
  2.         (if (element-of-set? x set)
  3.             set
  4.             (cons x set)))
  5.  
  6. (define (element-of-set? x set)
  7.         (cond ((empty-set? set) #f)
  8.               ((eqv? x (car set)) #t)
  9.               (else (element-of-set? x (cdr set)))))
  10.      
  11. (define (union-set set1 set2)
  12.         (if (empty-set? set1)
  13.             set2
  14.             (union-set (cdr set1) (adjoin-set (car set1) set2))))
  15.  
  16. (define (intersection-set set1 set2)
  17.         (cond ((empty-set? set1) the-empty-set)
  18.               ((element-of-set? (car set1) set2)
  19.                       (cons (car set1) (intersection-set (cdr set1) set2)))
  20.               (else (intersection-set (cdr set1) set2))))
  21.  
  22. (define (empty-set? x)
  23.         (eq? x the-empty-set))
  24.  
  25. (define the-empty-set 'empty-set)
  26.