blob: 75c000184959ff99e65626552bc53a4e680a24c4 (
plain)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
;; Copyright (c) Jason Wolfe. All rights reserved. The use and
;; distribution terms for this software are covered by the Eclipse Public
;; License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can
;; be found in the file epl-v10.html at the root of this distribution. By
;; using this software in any fashion, you are agreeing to be bound by the
;; terms of this license. You must not remove this notice, or any other,
;; from this software.
;;
;; set.clj
;;
;; Clojure functions for operating on sets (supplemental to clojure.set)
;;
;; jason at w01fe dot com
;; Created 2 Feb 2009
(ns
#^{:author "Jason Wolfe",
:doc "Clojure functions for operating on sets (supplemental to clojure.set)"}
clojure.contrib.set)
(defn subset?
"Is set1 a subset of set2?"
[set1 set2]
{:tag Boolean}
(and (<= (count set1) (count set2))
(every? set2 set1)))
(defn superset?
"Is set1 a superset of set2?"
[set1 set2]
{:tag Boolean}
(and (>= (count set1) (count set2))
(every? set1 set2)))
(defn proper-subset?
"Is s1 a proper subset of s2?"
[set1 set2]
{:tag Boolean}
(and (< (count set1) (count set2))
(every? set2 set1)))
(defn proper-superset?
"Is s1 a proper superset of s2?"
[set1 set2]
{:tag Boolean}
(and (> (count set1) (count set2))
(every? set1 set2)))
|