Clojure中的DSL取代了面向对象的软件解决方案?

jay*_*100 5 java domain-driven-design data-modeling clojure

嗨伙计们:我想知道是否有人知道Clojure中DSL的具体示例,它取代了优秀OO程序的抽象和可读性(用Java编写).

我一直在尝试将一个OO数据模型(基于"bean",使用非常抽象的方法隐藏底层实现)变成一个clojure moeity ......

我知道存在"宏"和"高阶函数",但是,我从未将它们应用于易于理解的真实世界数据集(例如,课程注册系统,汽车经销商或计费)系统,或类似的东西,回想起Hibernate和Ibatis在过去十年中普及的臭名昭着的"JPetStore"例子.

无论如何......我的基本问题是:

是否存在任何特定于域的模板,用于学习如何使用协议和高阶函数对Clojure中的真实世界系统进行建模?

zla*_*ajo 1

我不知道这是否是您正在寻找的内容,但我读过一本关于 Clojure 的书(Clojure 编程;实用程序员),其中包含一个不错的小 DSL 示例。您可以在https://github.com/stuarthalloway/lancet找到代码。基本上,lancet 类似于make或ant,但作为 Clojure-DSL 实现。