我正在使用查找表编写Haskell中的程序。如何使用Haskell类型构造函数作为枚举?
例如。
type Table = [(Object, FilePath)]
data Object = Player { pName :: String }
我想在这样的方式Player
可以是查找键来构建这样的:
[(Player, "data/players"), ...]
如果我增加了一个Object
类型Monster
,我的表可能看起来像:
[(Player, "data/players"), (Monster, "data/mons"), ...]
但是,我的Table
类型定义表明,我正在查找实例化的对象时,实际上,我只是想检查它是否一个类型的构造函数或另一个类型的构造函数
我该如何去做这件事?
编辑:
我想我想是这样的:
data ObjectType = Player | Monster | ...
但有没有办法避免数据构造和类型构造的重复?
我认为这是只有合理的方式来处理这一点。 –
我去了你的编辑,因为它更有意义(对我来说)模式匹配(现在)。 – sdasdadas