Я всегда немного смущен символами и варами в Clojure. Например, можно ли с уверенностью сказать, что символ + является символом, который используется для обозначения var, и этот var указывает на значение, которое является функцией, которая может добавлять числа?
Итак, что происходит, шаг за шагом, когда я просто вводил "+" в REPL?
- Символ получает квалификацию в пространстве имен, в этом случае Clojure.core
- Затем в некоторой таблице символов есть информация, которая + ссылается на var
- Когда этот var оценивается, результатом является значение функции?