From e544068d3d67560aa5ebd05889e2cb653236dc50 Mon Sep 17 00:00:00 2001 From: jwilliamson1 Date: Mon, 29 Jan 2018 21:06:43 -0500 Subject: [PATCH] add set stuffs --- sets.ods | Bin 0 -> 23352 bytes sets.rkt | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 sets.ods create mode 100644 sets.rkt diff --git a/sets.ods b/sets.ods new file mode 100644 index 0000000000000000000000000000000000000000..1956f00ed026695b065e32fbbc85eb3212c4387d GIT binary patch literal 23352 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 x1 x2)) + (cons x2 (union-set set1 (cdr set2))))))))) + +(displayln "test union-set") +(union-set '(1 3 5 8)'(2 4 6 7)) +(union-set '(1 3 5)'(1 2 3 4 5 6)) +(union-set '(1 2 3 4 5 6)'(2 4 6)) +(union-set '(1 2 3)'(4 5 6)) +(union-set '(2 3 4 5 6)'(1 2 3 7)) + +(define (disjoin set1 set2) + ;numbers that are not in both sets + (cond((null? set1)set2) + ((null? set2)set1) + (else + (let((x1 (car set1))(x2 (car set2))) + (cond((= x1 x2) + (disjoin (cdr set1)(cdr set2))) + ((< x1 x2) + (cons x1(disjoin(cdr set1)set2))) + (else(cons x2(disjoin set1 (cdr set2))))))))) + +(disjoin '(1 2 3)'(1 3 4)) +(disjoin '(1 2 3 6)'(1 3 4)) +(disjoin '(1 2 3 6)'(1 3 4 5 7)) + +(define(difference set1 set2) + ;only the numbers from the first set not in the second + (cond((null? set1)'()) + ((null? set2)set1) + (else + (let((x1 (car set1))(x2 (car set2))) + (cond((= x1 x2) + (difference (cdr set1)(cdr set2))) + ((< x1 x2) + (cons x1(difference(cdr set1)set2))) + (else(difference set1 (cdr set2)))))))) +(difference '(1 2 3)'(1 3 4)) +(difference '(1 2 3 6)'(1 3 4)) +(difference '(1 2 3 5 6)'(1 3 4 5 7)) +(difference '(1 2 3 5 6 7)'(1 3 4 7)) +(append '() (list 1) '() (list 2)) + + \ No newline at end of file