Clojure :В чем разница между resolve и var?

В чем разница между (resolve...)и (var...)? Они оба принимают символ и возвращают переменную в пространстве имен. Похоже, что resolve — это функция, которая использует синтаксис кавычек в качестве аргумента, а var — это специальная форма, которая принимает литеральный символ, введенный в repl, но я не понимаю, как они могут использоваться по-другому.

user> (def my-symbol 2.71828182846)
#'user/my-symbol
user> (resolve 'my-symbol)
#'user/my-symbol
user> (type (resolve 'my-symbol))
clojure.lang.Var
user> (var my-symbol)
#'user/my-symbol
user> (type (var my-symbol))
clojure.lang.Var
user> (= (resolve 'my-symbol) (var my-symbol))
true
5
задан Benjamin 13 December 2013 в 18:29
поделиться