gpt4 book ai didi

parsing - Elm 是否有相当于 Haskell 的 "Read"

转载 作者:行者123 更新时间:2023-12-02 14:30:04 26 4
gpt4 key购买 nike

我目前正在编写一个在线游戏,我使用 Haskell 作为服务器端后端,使用 Elm 作为前端/渲染。

现在,我将 GameState 作为一个大型 ADT,其类型足够简单,我也可以在 Elm 中使用它。我希望避免使用 JSON,而只需将数据上“show”的输出传递给 Elm,然后我可以将其解析回 Elm 中的 ADT。

我想知道,是否有相当于 haskell 的“read”的东西,它可以自动查看 show 输出的字符串,并将其解析回数据?如果没有,是否有任何现有的解析器库可用于 Elm?

如果我最终选择使用 JSON,有没有办法将其自动转换为 ADT? (也许类似于 Aeson 的 FromJSON?)

最佳答案

我的理解是,Elm(没有类型类)无法轻易拥有 readfromJSON多态版本。我也不相信它有任何好的泛型编程功能,因此实现类似于 deriving 或 OCaml 的 with 的东西也会很困难。

不幸的是,这意味着您最好的选择是编写一次性函数来序列化和反序列化您使用的各种类型。您可以在 Haskell 端使用 aeson,然后使用 Elm's JSON library 将函数写入 JSON 或从 JSON 写入函数。 .

另一个选择可能是尝试重用 Haskell 的派生 Read 生成的代码并将其移植到 Elm。然而,这可能比它的值(value)更多的工作,而且我不知道到底如何去做。

关于parsing - Elm 是否有相当于 Haskell 的 "Read",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18542890/

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