alter-meta!

added
1.0

ns
clojure.core

type
function

(alter-meta! iref f & args)

Atomically sets the metadata for a namespace/var/ref/agent/atom to be:

(apply f its-current-meta args)

f must be free of side-effects

                (def ^{:version 1} document "This is text")
;;=> #'user/document

(meta #'document)
;;=> {:version 1}

(alter-meta! #'document #(update-in % [:version] inc))  ;increase version
;;=> {:version 2}

(meta #'document)  ;metadata of var was changed
;;=> {:version 2}

(alter-meta! #'document update-in [:version] inc)  ;same as above but shorter
;;=> {:version 3}

(meta #'document)  ;metadata of var was changed again
;;=> {:version 3}