我有一段看起来像这样的代码:
data SomeData = A | B | C | D | E deriving (Show, Enum)
我希望能够轻松地将某些值映射到这些类型。假设我想将char
s 映射到一个SomeData
类型,我可能会这样做:
mappings = zip "abcde" [A, B, C, D, E]
这会产生[('a',A),('b',B)...]
等等。我希望Enum
类型类可以让我能够[A, B, C, D, E]
通过使用一些便利函数将数据类型转换为我上面描述的列表()轻松地做到这一点。
标准库中有这样的功能吗?或者如果我想使用这样的东西,我需要自己定义它吗?