¿Cita-cotización (hash-quote, # ') en Clojure ejecuta las funciones de resolución y símbolo?
Quizás puedas ayudarme a encontrar esto en los documentos. Estoy usando pound-quote para poder pasar nombres de funciones no evaluados antes de la ejecución. Por ejemplo:
(#'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
Mi conjetura es que esta es una macro de lector.
Mi pregunta es (a) ¿Para qué sirve la abreviatura de la libra (# ')? (b) ¿Puedes explicar lo que está haciendo? (c) ¿Puedes ubicarlo en la documentación? (d) ¿Es realmente una abreviatura para las funciones de resolución y símbolo?
PD: para aquellos que no están en los EE. UU., # También se conoce como "hash" o "hash cruzado".
PPS: soy consciente de que mi ejemplo hace que la necesidad de esto sea algo redundante. Me interesa saber si esto es completamente redundante o si hay casos de uso específicos.