時折、他の人の Clojure コードを見ているdefnと、var-quote 構文を使用して定義され、呼び出された関数が表示されます。
user> (defn a [] 1)
#'user/a
user> (a) ; This is how you normally call a function
1
user> (#'a) ; This uses the var-quote syntax and produces the same result
1
私の人生では、関数を呼び出すこれら2つの方法の違いを理解できません。評価ドキュメントには、呼び出しの演算子が var である場合に何が起こるかを示すものは何も見つかりません。これは、2 番目の形式が好まれる理由を示唆している可能性があります。bindingどちらも、割り当てと構文引用に対して同じように応答するようです。
(a)それで、誰かがと上記の違いを説明するコードサンプルを提供してもらえます(#'a)か?
編集: var-quote を使用して、字句バインディングによってシャドウされている var を取得できることは知っていletますが、私が見ているコードではそうではないようです。