Czy funt cytat (hash-quote, # ') w Clojure uruchamia funkcje rozwiązywania i symboli?

Być może pomożesz mi znaleźć to w dokumentach. Używam cytowania funtów, aby móc przekazywać nieocenione nazwy funkcji przed wykonaniem. Na przykład:

(#'cons 1 ())
;(1)

(defn funcrunner [func a b]
  (func a b))

(funcrunner cons 'a ())
;(a)

(funcrunner 'cons 'a ())
'()

(funcrunner #'cons 'a ())
;(a)

#'cons
;#'clojure.core/cons

(resolve (symbol 'cons))
;#'clojure.core/cons

Domyślam się, że jest to makro czytelnika.

Moje pytanie brzmi (a) Do czego służy skrót cytatu (# ”)? (b) Czy możesz wyjaśnić, co robi? (c) Czy możesz znaleźć to w dokumentach? (d) Czy faktycznie jest to skrót od funkcji rozwiązywania i symboli?

PS - Dla tych, którzy nie są w USA - # jest również znany jako „hash” lub „cross-hash”.

PPS - zdaję sobie sprawę, że mój przykład sprawia, że ​​potrzeba tego trochę zbędnego. Chcę wiedzieć, czy jest to całkowicie zbędne, czy też istnieją konkretne przypadki użycia.

questionAnswers(2)

yourAnswerToTheQuestion