(defn f1 [] 42)
(def f2 #'f1)
(def f3 #'f2)
...when I call f3 the chain of vars is followed:
(f3) ; => 42
Out of curiosity, where is this following-the-chain defined?
I looked at http://clojure.org/evaluation which simply says "The result of the evaluation of the operator is [...] cast to IFn (the interface representing Clojure functions), and invoke() is called on it".
--Simon