gpt4 book ai didi

haskell - Haskell中如何实现多种外部格式的数据多态?

转载 作者:行者123 更新时间:2023-12-02 14:51:19 25 4
gpt4 key购买 nike

我需要处理语义等效数据的多种格式和版本。

我可以为每个模式(例如 XSD)生成 Haskell 数据类型,它们在技术上会有所不同,但在许多情况下在语义和结构上是相同的。

数据很复杂,包括引用,服务组件必须处理整个图表并产生类似的响应(组件可能只更新一个字段,但可能需要分析整个图表以收集所有必需的信息,可能会调用其他服务好吧)。

  • 如何将 ns1:addressns2:adress 表示为具有 countrystreet 的多态类型> 元素和应用程序需要将它们处理为相同的,但保留序列化上下文以正确的格式写入响应(一种表示可能将它们编码为单个字符串,而其他表示可能还携带多余的复杂数据)?
  • 我距离编写主要定义数据、业务逻辑的语义等效性并生成所有其他内容的代码还有多远?我应该评估 Haskell 语言或库中的哪些功能作为潜在解决方案的构建 block ?

最佳答案

一个选项是为每个架构创建一个数据类型,并创建一个函数将它们映射到通用数据类型。按照你的意愿处理它。您不需要创建多态类型。

这种方法与 Pandoc 类似:让一群读取器将文档解析为通用文档结构,然后使用编写器将该通用结构转换为特定格式。

您只需要库来读取复杂的输入数据(并在必要时将其写回)。剩下的就是函数和数据类型。

如果你真的处理图表,你可以看看 the Data.Graph module .

关于haskell - Haskell中如何实现多种外部格式的数据多态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22519742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com