我想编写一个通用程序,将数据从文本文件或数据库加载到表中。
源和目标之间的转换不应该是硬编码的。它们的格式可能是
ColA = Col1 + Col1 * 1.5
ColB = convert Col3 to date
这些规则可能需要转换为SQL或C#代码。 F#是否已经有一些库来做这些? F#是实施它的好语言吗?
答案 0 :(得分:1)
由于您的问题中的具体细节很少,我们无法给您一个好的答案。但是这里有一些F#库,你可能会发现它们对你要做的事情有用:
FSharp.Data - 无论您的传入数据是SQL,CSV,JSON还是XML,都有一个类型提供程序可以为您解析它,并允许您针对它编写类型安全的查询。
FParsec - 让您轻松编写自定义解析器,以便您可以在自定义DSL中定义转换而无需太多精力。您在标题中提到了自定义DSL,这就是我推荐FParsec的原因。我自己就是用它来实现这个目的,而且很好。
这是关于我能给你的所有帮助,直到我知道你想要实现的更多细节。