(dissoc map) (dissoc map key) (dissoc map key & ks)
dissoc[iate]. Returns a new map of the same (hashed/sorted) type, that does not contain a mapping for key(s).
user=> (dissoc {:a 1 :b 2 :c 3}) ; dissoc nothing
{:a 1, :b 2, :c 3}
user=> (dissoc {:a 1 :b 2 :c 3} :b) ; dissoc key :b
{:a 1, :c 3}
user=> (dissoc {:a 1 :b 2 :c 3} :d) ; dissoc not existing key
{:a 1, :b 2, :c 3}
user=> (dissoc {:a 1 :b 2 :c 3} :c :b) ; several keys at once
{:a 1}
;; There is no (dissoc-in) analogous to (get-in) or (assoc-in), but
;; you can achieve a similar effect using (update-in):
(update-in {:a {:b {:x 3} :c 1}} [:a :b] dissoc :x)
;;=> {:a {:b {}, :c 1}}
;; When applied to a record and one of its base fields,
;; dissoc produces a plain map instead of a record
(defrecord Widget [id])
(def w (->Widget "id"))
(class w)
;; user.Widget
(class (dissoc w :id))
;; clojure.lang.PersistentArrayMap