I know that in Clojure, namespaces map symbols to Vars. So we can map the symbol x to a Var (here in the default namespace) like this:
user=> (def x 5)
#'user/x
user=> #'x
#'user/x
user=> (type #'x)
clojure.lang.Var
user=> x
5
Now if I subsequently say this
user=> (def x 3)
#'user/x
Have I rebound the symbol x to a brand new Var or have I updated the value in the same Var I created above? How would I know?
I'm thinking it's the latter because I read the sentence "Only Java fields, Vars, Refs and Agents are mutable in Clojure." in the Clojure Reference page on Vars but I'm not sure that holds as a proof.
id, though. - Ray Toal