つまり、 は の~場合と同様に、構文引用符で囲まれた形式で式を評価します~fn-name。この場合、評価する式は'nameであり、結果は修飾されていない記号nameです。
ただし、これを一度に 1 つずつ分解してみましょう。
非修飾シンボルしかない場合は、実行時に1nameと評価されます。これにより、フォームが正しくなくなり、コンパイラ例外が発生します。clojure.core/namedefn
(defn greeting [clojure.core/name] (str "Hello" name))
引用符で囲まれた非修飾シンボルしかない場合'nameでも、実行時に評価されます。違いは、 に展開されること(quote clojure.core/name)です。繰り返しますが、これは不適切なdefn形式になり、コンパイラ例外が発生します。
(defn greeting [(quote clojure.core/name)] (str "Hello" name))
最後に、 を使用~'nameすると、引用された形式がコンパイル時に評価され、修飾されていない記号 が生成されname、適切なdefn形式が得られます。
(defn greeting [name] (str "Hello" name))
name1 - これは、別の関数が存在しないことを前提としているため、この例に当てはまります。