(ns nal.deriver.set-functions (:require [clojure.set :as set])) | |
todo performance | (defn difference [[op & set1] [_ & set2]] (into [op] (sort-by hash (set/difference (set set1) (set set2))))) |
(defn union [[op & set1] [_ & set2]] (into [op] (sort-by hash (set/union (set set1) (set set2))))) | |
(defn intersection [[op & set1] [_ & set2]] (into [op] (sort-by hash (set/intersection (set set1) (set set2))))) | |
(def f-map {:difference difference :union union :intersection intersection}) | |
(defn not-empty-diff? [[_ & set1] [_ & set2]] (not-empty (set/difference (set set1) (set set2)))) | |
(defn not-empty-inter? [[_ & set1] [_ & set2]] (not-empty (set/intersection (set set1) (set set2)))) | |