我正在使用查找表編寫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