相关疑难解决方法(0)

在Haskell中定义枚举的更好方法

我想要一种数据类型来表示可以通过特定名称寻址的有限整数集.我认为最好的方法是使用Enum.

但是,有一个小问题.我知道定义Enum的唯一方法是这样的:

data MyDataType = Foo | Bar | Baz

instance Enum MyDataType 
 toEnum 0 = Foo
 toEnum 1 = Bar
 toEnum 2 = Baz

 fromEnum Foo = 0
 fromEnum Bar = 1
 fromEnum Baz = 2 
Run Code Online (Sandbox Code Playgroud)

请注意,我必须重复两次相同的对 - 一次定义整数到枚举映射,另一次定义枚举到整数映射.

有没有办法避免这种重复?

enums haskell

43
推荐指数
3
解决办法
2万
查看次数

标签 统计

enums ×1

haskell ×1