title: Why is Clojure allowing me to redefine the same variable?
body: <p>If the variables are immutable in Clojure, then why did it allow to redefine the same variable in the following snippet:</p>
  <pre><code>(ns tutorial.test-immutability-of-variables)
  
  (defn test_if_variables_are_mutable
    []
    (def a 1)
    (def a 10)
    (println (format &quot;Value of a: %d&quot; a) )
    )
  
  (test_if_variables_are_mutable)
  </code></pre>
  <p>The above code compiles and o/p is <code>10</code>.</p>