While learning clojure, I was very surprised to find out that these two objects are different types:
(list? `(inc)) ;; true
(list? `(inc 1)) ;; false
In theory, I understand why the second form returns false, that object
is actually a clojure.lang.Cons
. In practice, though, I don't
understand why that is happening.
Why does the reader read `(inc)
different from `(inc 1)
? What is happening under the hood?