OCaml/ReasonML是否支持核心语言或核心库中的DSL?
Groovy、Kotlin和Scala等语言提供了对DSL开箱即用的支持(例如:和)。OCaml/ReasonML在其核心语言或核心库中是否支持DSL?当然,这是函数式编程的主要功能,因此在OCaml中无法做到这一点会令人惊讶。这对于ML来说是如此自然,以至于不需要任何特殊的工具或技术 让我们举几个例子。我将从我编写的库开始,它被称为,它提供了一种完全嵌入OCaml中的类型安全查询语言,使用OCaml类型检查器验证查询的类型是否正确。这里有一些例子OCaml/ReasonML是否支持核心语言或核心库中的DSL?,ocaml,dsl,reason,Ocaml,Dsl,Reason,Groovy、Kotlin和Scala等语言提供了对DSL开箱即用的支持(例如:和)。OCaml/ReasonML在其核心语言或核心库中是否支持DSL?当然,这是函数式编程的主要功能,因此在OCaml中无法做到这一点会令人惊讶。这对于ML来说是如此自然,以至于不需要任何特殊的工具或技术 让我们举几个例子。我将从我编写的库开始,它被称为,它提供了一种完全嵌入OCaml中的类型安全查询语言,使用OCaml类型检查器验证查询的类型是否正确。这里有一些例子 选择所有GPA率大于3.8的学生 select
select
~where:(student.(gpa) > float 3.8)
(from students)
SELECT name FROM students WHERE gpa > 3.5
foreach Query.(select
~where:(student.(gpa) > float 3.8)
(from students))
~f:(fun s -> return (Student.name s))
在OCaml中编写eDSL的一个很好的资源是Oleg的页面。另一个例子是用于书写的eDSL。当然,我不能错过,但这是一个稍微不同的故事。无论如何,还有很多其他的例子,但我希望这足以让人有这种感觉 当然,这是函数式编程的主要功能,因此在OCaml中无法实现这一点会令人惊讶。这对于ML来说是如此自然,以至于不需要任何特殊的工具或技术 让我们举几个例子。我将从我编写的库开始,它被称为,它提供了一种完全嵌入OCaml中的类型安全查询语言,使用OCaml类型检查器验证查询的类型是否正确。这里有一些例子
select
~where:(student.(gpa) > float 3.8)
(from students)
SELECT name FROM students WHERE gpa > 3.5
foreach Query.(select
~where:(student.(gpa) > float 3.8)
(from students))
~f:(fun s -> return (Student.name s))
在OCaml中编写eDSL的一个很好的资源是Oleg的页面。另一个例子是用于书写的eDSL。当然,我不能错过,但这是一个稍微不同的故事。无论如何,还有很多其他的例子,但我希望这足以让人有这种感觉 是的,它们叫做函数!IME普通函数对于我所需要的大多数DSL都可以正常工作。撇开半个玩笑不谈,“DSL”过于宽泛和模糊,我认为无法充分回答。你应该更具体一些。是的,它们叫做函数!IME普通函数对于我所需要的大多数DSL都可以正常工作。撇开半个玩笑不谈,“DSL”过于宽泛和模糊,我认为无法充分回答。你应该尽量说得更具体些。