Why does clojure have symbols mapped to vars, instead they being mapped directly to values ? What is the idea behind the 2 way indirection of symbol resolving to a var, and a var referencing a value ?
What is var actually, is it just a memory reference, or a java class which does much more ?
The docs says that this is needed so that the values can be redefined, however why cant they redefined if there was no 2 way indirection ?