Thanks for the question.
You should avoid using
def to change the value of a Var. They are just there to support redefinition while you’re developing. At runtime, the Var should not change.
However, Clojuer does provide a lot of tools for creating a mutable value such as you want here. If you need something to change over time, you are suggested to use one of the Concurrency Primitives such as Atoms, Refs, or Agents. In this simple case I would suggest Atoms, since they are the simplest to get started with. You can read about them here: https://purelyfunctional.tv/guide/clojure-concurrency-the-ultimate-guide/#atom
Short bit of code to demonstrate:
(def stuff (atom [1 2 3 4]))
(prn @stuff) ;; => [1 2 3 4]
(swap! stuff conj 9)
(prn @stuff) ;; => [1 2 3 4 9]