有没有在Clojure中实现的DSL(领域特定语言)?
有没有在Clojure中实现的DSL(领域特定语言)?
有没有在Clojure中实现的DSL(领域特定语言)?
像任何Lisp方言一样,Clojure在API和DSL之间画了一个非常模糊的界限,因此这个术语在其他语言中并没有同样神秘的意义。 Lisp程序员倾向于将他们的程序编写为DSL的层次结构,每个层次为上面的层次服务。 话虽如此,以下是一些可以说显示出非平凡水平DSL-ness的库(没有特定的顺序):
这是一场关于如何使用Clojure构建DSL的有用讲座,由Enlive的创始人Christophe Grand在2010年Clojure-conj会议上发表。视频链接:http://blip.tv/clojure/christophe-grand-not-dsl-macros-4540700(幻灯片在这里)。
我还将Ring的设计视为DSL设计领域的一部分。可以观看Ring的创始人Mark McGranaghan的演讲: http://clojure.blip.tv/clojure/mark-mcgranaghan-one-ring-to-bind-them-4724955(幻灯片)。