私はどのように私は、暗黙的にその前の指定された要素にアクセスすることができ、このデータにdata MonthData = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving (Eq, Show, Enum, Ord)
アクセス「データ」の次の要素が
を定義していますか?
たとえば、私は月を持っていると私は明示的にを入力せずに2月にアクセスする2月
乾杯
私はどのように私は、暗黙的にその前の指定された要素にアクセスすることができ、このデータにdata MonthData = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving (Eq, Show, Enum, Ord)
アクセス「データ」の次の要素が
を定義していますか?
たとえば、私は月を持っていると私は明示的にを入力せずに2月にアクセスする2月
乾杯
あなたは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
Enum
のクラス機能は、succです。
関連性:http://stackoverflow.com/questions/5684049/is-there-some-way-to-define-an-enum-in-haskell-that-wraps-around。たぶん、そのスレッドからNeil Brownのソリューションを 'nextMonth'として追加してください。 – jpath