F#Dsl用于简单表达?

时间:2017-05-23 19:52:36

标签: f#

我想编写一个通用程序,将数据从文本文件或数据库加载到表中。

源和目标之间的转换不应该是硬编码的。它们的格式可能是

ColA = Col1 + Col1 * 1.5
ColB = convert Col3 to date

这些规则可能需要转换为SQL或C#代码。 F#是否已经有一些库来做这些? F#是实施它的好语言吗?

1 个答案:

答案 0 :(得分:1)

由于您的问题中的具体细节很少,我们无法给您一个好的答案。但是这里有一些F#库,你可能会发现它们对你要做的事情有用:

  • FSharp.Data - 无论您的传入数据是SQL,CSV,JSON还是XML,都有一个类型提供程序可以为您解析它,并允许您针对它编写类型安全的查询。

  • FParsec - 让您轻松编写自定义解析器,以便您可以在自定义DSL中定义转换而无需太多精力。您在标题中提到了自定义DSL,这就是我推荐FParsec的原因。我自己就是用它来实现这个目的,而且很好

这是关于我能给你的所有帮助,直到我知道你想要实现的更多细节。