访问“数据”的下一个元素

时间:2016-11-16 17:33:24

标签: haskell functional-programming

我已定义此数据data MonthData = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving ( Eq, Show, Enum, Ord )

如何隐藏访问前一个元素?

例如,我有一个 Jan ,我想访问 Feb 而不显式输入 Feb

干杯

2 个答案:

答案 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