Clojure有任何DSL吗?

31
有没有在Clojure中实现的DSL(领域特定语言)?
有没有在Clojure中实现的DSL(领域特定语言)?
3个回答

68

像任何Lisp方言一样,Clojure在API和DSL之间画了一个非常模糊的界限,因此这个术语在其他语言中并没有同样神秘的意义。 Lisp程序员倾向于将他们的程序编写为DSL的层次结构,每个层次为上面的层次服务。 话虽如此,以下是一些可以说显示出非平凡水平DSL-ness的库(没有特定的顺序):

  • mini-kanren (嵌入式逻辑编程)
  • Leiningen(构建工具)
  • sexpbot(带有插件架构的IRC机器人)

  • 1
    很棒的列表!人们还可以考虑将Leiningen视为DSL。 - Jonas
    虽然它可能不是DSL的“好”示例,但我的IRC机器人的defplugin宏是用于创建sexpbot插件的DSL。您可以在src / sexpbot / plugins中找到其使用示例,并在src / sexpbot / respond.clj中找到实际实现。如果您愿意,您可以将其添加到列表中。我不想创建一个全新的答案来添加它,因为您的答案已经非常出色了。 - Rayne
    1
    很棒的列表,但是我无法相信你忘记了Compojure!至少有人记得Ring! - Marc

    7

    3

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接