相关疑难解决方法(0)

将Clojure宏用于DSL

我正在开发一个Clojure项目,我经常发现自己正在为DSL编写Clojure宏,但我正在观看Clojure视频,了解公司如何在实际工作中使用Clojure,而且发言人说在实际使用中他们不使用宏来实现他们的DSL,他们只使用宏来添加一点句法.这是否意味着我应该使用标准函数编写我的DSL,然后在最后添加一些宏?

更新:在阅读了这个问题的许多不同(和有趣的)回答后,我意识到答案并不像我最初想的那样明确,原因有很多:

  1. 应用程序中有许多不同类型的API(内部,外部)

  2. API的用户有很多种类(商业用户只想快速完成某项工作,Clojure专家)

  3. 是否有宏隐藏锅炉板代码?

我会离开并更深入地思考这个问题,但感谢你的回答,因为他们给了我很多思考.另外我注意到Paul Graham认为与Christophe视频相反,并认为宏应该是代码库的很大一部分(25%):

http://www.paulgraham.com/avg.html

macros dsl clojure higher-order-functions

11
推荐指数
2
解决办法
2049
查看次数

标签 统计

clojure ×1

dsl ×1

higher-order-functions ×1

macros ×1