Seguimos con Clojure...
Con def podemos guardar un valor en una variable pero ojo al piojo que en los lenguajes funcionales las variables no varían. Son constantes donde guardamos un valor, para utilizarlo más adelante o puede ser un pero eso es otro tema... Lo importante, es que en Clojure estamos lejos del concepto de mutabilidad.
Para definir una variable podemos hacer:
user=> (def x 6)
#'user/x
Y luego lo podemos usar :
user=> (+ x x)
12
def es una forma especial que asocia un símbolo (x) en el espacio de nombres actual con un valor (6). Este enlace se llama var. En la mayoría del código Clojure actual, las vars deben referirse a un valor constante o una función, pero es común definirlas y redefinirlas por conveniencia cuando se trabaja en REPL.
Tengamos en cuenta que el valor de retorno anterior es #'user/x; esa es la representación literal de una var: #' seguida del símbolo de espacio de nombres, user es el espacio de nombres predeterminado.
Recuerde que los símbolos se evalúan buscando a qué se refieren, por lo que podemos recuperar el valor simplemente usando el símbolo, como vimos en el ultimo ejemplo.