Что означает обозначение символа "#" в clojure?
Я изучаю clojure на Heroku, используя этот учебник. Я также встретил то же самое в других учебниках.
В любом случае, используя адаптер причала в кольце, у вас есть что-то вроде этого:
(defroutes routes
...)
(defn start []
(ring/run-jetty #'routes {:port 8080 :join? false}))
Я не понимаю, что означает #'routes
. Если я заменю его только на routes
, он работает нормально. Что означает обозначение #'symbol
? Исследование было очень трудным.
Ответы
Ответ 1
Это макрос читателя . #'foo
расширяется до (var foo)
. См. Является ли фунтовая кавычка (хеш-кавычка, # ') в Clojure запуском функций разрешения и символа?, Разница между символами и Vars в Clojure и http://clojure.org/vars, где вы можете найти подробное обсуждение.