我有一個枚舉和一個函數來調用枚舉的下一個元素。Haskell function-next for enums
data Day = Mon | Tue | Wed | Thu | Fri | Sat | Sun
next :: Day -> Day
next Mon = Tue
next Tue = Wed
next Wed = Thu
next Thu = Fri
next Fri = Sat
next Sat = Sun
next Sun = Mon
我試圖通過調用使用此:
> next Mon
但是編譯器顯示錯誤:
<interactive>:35:1:
No instance for (Show Day) arising from a use of `print'
Possible fix: add an instance declaration for (Show Day)
In a stmt of an interactive GHCi command: print it
我做錯了嗎?
你的函數沒問題,但是你試圖打印結果,所以你應該在日期類型聲明結尾添加'deriving(Show)' – m09
'data Day = Mon |星期二|星期三|星期四|星期五|星期六| Sun派生(Show)'應該解決這個問題。 – Sibi