Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何才能更习惯地编写此Clojure宏?_Clojure_Macros_Lisp_Lisp Macros - Fatal编程技术网

如何才能更习惯地编写此Clojure宏?

如何才能更习惯地编写此Clojure宏?,clojure,macros,lisp,lisp-macros,Clojure,Macros,Lisp,Lisp Macros,我喜欢避免使用(var-get(resolve(symbol…(str'~parem)))。类似于thi.ng.color.core/(~color name) (我在一个非常小的个人项目中使用这个宏,我不在乎为这个用例创建宏是否真的很糟糕。尽管我想知道为什么在更大的项目中它会有问题。)(需要'thi.ng.color.core] (def)获取颜色 [颜色名称] (让[sym(符号“thi.ng.color.core”) (str颜色名称))] `@(thi.ng.color.core/as-

我喜欢避免使用
(var-get(resolve(symbol…(str'~parem)))
。类似于
thi.ng.color.core/(~color name)

(我在一个非常小的个人项目中使用这个宏,我不在乎为这个用例创建宏是否真的很糟糕。尽管我想知道为什么在更大的项目中它会有问题。)

(需要'thi.ng.color.core]
(def)获取颜色
[颜色名称]
(让[sym(符号“thi.ng.color.core”)
(str颜色名称))]
`@(thi.ng.color.core/as-int32~sym)))
(评论)
(获取颜色“红色”);=>4294901760
(获得红色);;=>4294901760
)

我的解决方案的工作原理是这样的
(使用红色)
。这一个甚至不适用于
(获取颜色“红色”)
。您没有指定您的用法。我更新了答案。
(defmacro get-color [color-name]
  `@(thi.ng.color.core/as-int32 (var-get (resolve (symbol "thi.ng.color.core"
                                            (str '~color-name))))))