也许你可以帮我在文档中找到这个。我正在使用井号引用(pound-quote)来能够在执行之前传递未评估的函数名称。例如:
(#'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
我猜想这是一个阅读器宏。
我的问题是:(a) 井号加单引号 (#') 是什么缩写? (b) 你能解释一下它在做什么吗? (c) 你能在文档中找到它吗? (d) 它实际上是 resolve 和 symbol 函数的缩写吗?
PS - 对于那些不在美国的人来说,# 也被称为 'hash' 或 'cross-hash'。
PPS - 我知道我的示例使得这种需要有点多余。但我想知道它是否完全多余,或者是否存在特定的用例。