我怎样才能更地道地编写这个 Clojure 宏?
How can I write this Clojure macro more idiomatically?
(defmacro get-color [color-name]
`@(thi.ng.color.core/as-int32 (var-get (resolve (symbol "thi.ng.color.core"
(str '~color-name))))))
我喜欢避免使用 (var-get (resolve (symbol ... (str '~parem))))
。类似于 thi.ng.color.core/(~color-name)
。
(我在一个非常小的个人项目中使用这个宏,我不在乎为这个用例创建一个宏是否真的是不好的做法。虽然我想知道为什么在更大的项目中会出现问题.)
(require 'thi.ng.color.core)
(defmacro get-color
[color-name]
(let [sym (symbol "thi.ng.color.core"
(str color-name))]
`@(thi.ng.color.core/as-int32 ~sym)))
(comment
(get-color "RED") ;;=> 4294901760
(get-color RED) ;;=> 4294901760
)
(defmacro get-color [color-name]
`@(thi.ng.color.core/as-int32 (var-get (resolve (symbol "thi.ng.color.core"
(str '~color-name))))))
我喜欢避免使用 (var-get (resolve (symbol ... (str '~parem))))
。类似于 thi.ng.color.core/(~color-name)
。
(我在一个非常小的个人项目中使用这个宏,我不在乎为这个用例创建一个宏是否真的是不好的做法。虽然我想知道为什么在更大的项目中会出现问题.)
(require 'thi.ng.color.core)
(defmacro get-color
[color-name]
(let [sym (symbol "thi.ng.color.core"
(str color-name))]
`@(thi.ng.color.core/as-int32 ~sym)))
(comment
(get-color "RED") ;;=> 4294901760
(get-color RED) ;;=> 4294901760
)