【发布时间】:2018-07-31 01:23:30
【问题描述】:
user=> (def v-1 "this is v1")
user=> (def v-2 "this is v2")
user=> (defmacro m [v] (symbol (str "v-" v)))
user=> (m 1)
"this is v1"
user=> (m 2)
"this is v2"
user=> (let [i 2] (m i))
CompilerException java.lang.RuntimeException: Unable to resolve symbol: v-i in this context, compiling:(NO_SOURCE_PATH:73:12)
我可以写一个宏让两者兼而有之
(m 2)
和
(let [i 2] (m i))
得到“这是 v2”?
【问题讨论】:
标签: clojure