我已定义此数据data MonthData = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving ( Eq, Show, Enum, Ord )
如何隐藏访问前一个元素?
例如,我有一个 Jan ,我想访问 Feb 而不显式输入 Feb
干杯
答案 0 :(得分:10)
您要求编译器推断出Enum
实例,所以
>>> :t succ
succ :: Enum a => a -> a
>>> succ Jan
Feb
但请注意
>>> succ Dec
*** Exception: succ{MonthData}: tried to take `succ' of last tag in enumeration
答案 1 :(得分:1)
您使用Enum
的类功能:succ。