【发布时间】:2012-10-04 04:22:01
【问题描述】:
我有一个 clojure 应用程序,它需要一些配置变量,主要是字符串,但也需要评估的东西。
我可以用类似这样的方式声明每个变量:
(def config-db "URI_DB"))
(def config-time (hours 1))
但我认为可能是一个好主意(我不太确定)编写一个宏来做到这一点,看起来像这样:
(make-config
config-db "URI_DB"
config-time (hours 1))
(或者我可以将名称放在向量中,看起来更像是一个 let 语句)
但是当我放了不止一对时我遇到了问题,我这样做了:
(defmacro define-config
[name definition]
`(def ~name ~definition))
但我真的不知道如何将其扩展为更有用的东西......
有什么建议或想法吗?
【问题讨论】:
-
我知道这已经很老了,但是地图似乎更好地支持了您的用例,例如
(def config {:db "URI_DB" :time (hours 1)})
标签: clojure macros configuration-files