我想將符號作爲參數傳遞給函數,並將該符號捕獲爲帶引號的字符串或字符串,以便可以在末尾標記爲-a
,然後使用新生成的符號定義原子。但是在符號被評估之前有沒有辦法做到這一點?如何在Clojure中將參數變量解析爲符號?
(defn sym-a [variable] (symbol (str variable "-a")))
(defn sym-val [old-sym]
(let [ new-sym (sym-a old-sym)]
`(def ~new-sym (atom nil))))
它適用於我使用宏時,但我不知道是否有某種方法可以避免這種情況?
(defmacro sym-val [old-sym]
(let [ new-sym (sym-a old-sym)]
`(def ~new-sym (atom nil))))
(name(symbol「x」));你是這個意思嗎? – dsm
這不起作用。你能告訴我應該在哪裏使用它嗎? – kurofune