Skip to content

Latest commit

 

History

History
22 lines (19 loc) · 520 Bytes

define-something-only-once.md

File metadata and controls

22 lines (19 loc) · 520 Bytes

Define Something Only Once

Clojure provides defonce which is a macro that defines something only once. Once a variable has been bound to a value, subsequent attempts to do defounce for that variable will go unevaluated. This will have no implications for how the def special form works.

Here is an example:

(defonce stuff 5)
#'user/stuff
user=> (defonce stuff "what")
nil
user=> stuff
5
user=> (def stuff "okay")
#'user/stuff
user=> stuff
"okay"