# Differences between names and symbols, vars and bindings, forms and expressions

**URL:** https://clojureverse.org/t/differences-between-names-and-symbols-vars-and-bindings-forms-and-expressions/9844
**Category:** General Questions
**Tags:** beginner, clojure
**Created:** [March 6, 2023, 7:28pm UTC](https://clojureverse.org/t/differences-between-names-and-symbols-vars-and-bindings-forms-and-expressions/9844 "2023-03-06T19:28:19Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![avidrucker](https://clojureverse.org/user_avatar/clojureverse.org/avidrucker/32/3294_2.png) [@avidrucker](https://clojureverse.org/u/avidrucker)
#### Post date: [March 6, 2023, 7:28pm UTC](https://clojureverse.org/t/differences-between-names-and-symbols-vars-and-bindings-forms-and-expressions/9844/1 "2023-03-06T19:28:19Z")

</div>

What is the relationship hierarchy between these things in Clojure?

1. forms and expressions
2. vars and bindings
3. symbols and names

I recall reading somewhere that forms are a more generalized way of referring to both expressions and special forms, but I am not confident that this is the case. If it is, are there forms that are neither expressions nor special forms, and what might those be?

My understanding is that def and let can be rebound, and that, while not generally best practice to do so, this means that they are Vars, as in, variables, that can change. Does Clojure have true constants, that once set, can never be changed, such as a JavaScript `const my_var = 25`? If we generally do not call def and let variables, then what is/are the preferred way(s) to call them; bindings, names, or something else?

Last but not least, I am still unclear about the relationship between names and symbols. Is there overlap where all names are symbols, or all symbols are names, or is the relationship different than these? On that note, I wonder if “names” and “identifiers” are interchangeable terms in Clojure 🤔

Thank you for helping me to clarify!

Ps. I found that reading on the Clojure website and in Clojuredocs wasn’t particularly helpful to me in answering these questions. I don’t know what I don’t know, and it’s quite possible that I missed something while reading through the above resources.

---

_[View the full topic](https://clojureverse.org/t/differences-between-names-and-symbols-vars-and-bindings-forms-and-expressions/9844)._
