Haskell:将 .lua 表格转换为 Haskell 可用类型

我是一个初学者,试图通过将不同语言的一些简单仓库翻译成 Haskell 来练习编码。

许多简单的游戏使用 .lua 存储角色/能力数据。

我想做的是将那个 .lua 表格转换为 Haskell 可用类型。

这就是 .lua 文件的样子

local Data =
{
["Weapons"] = {
    ["AB"] = {
        Name = "AB",
        Cost = {
            Spells = 65000,
            BCost = 15000,
            MCost = 150,
            sh = 35,
            Time = 24,
            Parts = {
                { Name = "Top",Type = "Item",Count = 1,},},
        },
        Resist = 0.85,
        Class = "Shield",
        Attack = {
            Damage = {
                ["First"] = 5,
                ["Second"] = 5,
                ["Third"] = 40,},
            Chance = 0.2,
            X = 2,
        },
    },
    ["PG"] = {
    ...
    ...
    ...
}

return Data

当使用 Aeson 时,有这个简单的函数 decode,您可以使用 decode someJSON :: Maybe Object,并获得整个 JSON 文件内容放在默认的 Aeson 数据类型中,您可以使用库函数处理它们。 我还没有找到类似于 .lua 的东西。

点赞