访问“数据”的下一个元素
问题描述:
我定义这个数据data MonthData = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving (Eq, Show, Enum, Ord)
访问“数据”的下一个元素
我如何隐含访问一个元素赋予其前一个?
举例来说,我有一个扬,我想访问月没有明确键入二月
干杯
答
你问的编译器来推断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
相关:http://*.com/questions/5684049/is-there-some-way-to-define-an-enum-in-haskell-that-wraps-around。也许可以将Neil Brown的解决方案从该主题添加为“nextMonth”。 – jpath