Clojure中是否有任何DSL(域特定语言)实现?
答案 0 :(得分:67)
与任何Lisp方言一样,Clojure在API和DSL之间划出了一条非常模糊的界限,因此该术语与其他语言不同。 Lisp程序员倾向于将他们的程序编写为DSL层,每层都为其上层提供服务。话虽如此,这里有一些你可以说显示非平凡的DSL级别(没有特定的顺序):
答案 1 :(得分:7)
SQL DSL,有点陈旧但可能是展示
答案 2 :(得分:3)
关于如何使用来自Enlive,Christophe Grand的创建者2010年clojure-conj会议使用clojure构建DSL的有用话题:http://blip.tv/clojure/christophe-grand-not-dsl-macros-4540700(幻灯片是here)。
我还会将Ring的设计视为DSL设计领域的设计。请参阅Ring的创建者Mark McGranaghan的演讲:http://clojure.blip.tv/clojure/mark-mcgranaghan-one-ring-to-bind-them-4724955(slides)