potpuri icon indicating copy to clipboard operation
potpuri copied to clipboard

Set-toggle / conj/disj

Open Deraen opened this issue 8 years ago • 2 comments

Better name would be nice.

(defn set-toggle [set item]
  (if (contains? set item)
    (disj set item)
    (conj set item)))

;; use-cases
(def selected-items (atom #{}))

[:input {:type "checkbox"
         :on-change (fn [_] (swap! selected-items set-toggle 15) nil)}]

Deraen avatar Apr 04 '16 11:04 Deraen

I often would like to have the version of this that takes a boolean.

(defn set-toggle [set item include?]
  (if include?
    (conj set item)
    (disj set item))

miikka avatar Jul 06 '17 09:07 miikka

The function could have both arities. Functionally this is okay, but I don't like the set-toggle name...

Deraen avatar Jul 06 '17 10:07 Deraen