Clojure is a functional programming language, and all of its basic data structures are immutable and constant. This also includes a vector.
In your example, you need to manage the state. Clojure provides several abstractions for this, of which, I think, atoms are better for your use.
user=> (defrecord Item [name]) user.Item user=> (def item-list (atom []))
source share