data Months = January|February|March|April|May|June|July
deriving (Eq, Ord, Enum)
instance Show Months where
show January="Jan"
show February="Feb"
show March="Mar"
....
私のような出力を表示するために行うには何が必要です:「月」、「2月」、...、「7月」Haskellのショーデータ
data Months = January|February|March|April|May|June|July
deriving (Eq, Ord, Enum)
instance Show Months where
show January="Jan"
show February="Feb"
show March="Mar"
....
私のような出力を表示するために行うには何が必要です:「月」、「2月」、...、「7月」Haskellのショーデータ
Show
が自動的に導出することができます?
data Months = January | February | March | April | May | June | July
deriving (Eq, Ord, Enum, Show)
そしてそう:私はあなたがあなたのShow
インスタンスを表示する十分な理由があるかもしれないと仮定し
λ> show January
"January"
これらは月の名前を省略していますが、データコンストラクタの名前を一致させるだけではどうですか?
、私はショーの月を書くとき、それらはすべて表示されるようにすることができますか? @mdunsmuir – benjy1911
@ benjy1911 'show [January .. July]'を使ってください。 'Enum'インスタンスは、すべての月を順番に生成することを可能にします。 – user2407038
また、より多くの月が後で追加された場合に備えて、 'Bounded'と' show [minBound .. maxBound] 'を導き出す方が良いでしょう。 – Ingo
あなたが尋ねていることは不明です - あなたの 'Show'インスタンスの助けが必要なのですか?間違ってインデントされていて、' show ... 'の前に少なくとも2つのスペースを入れてください。 'print January 'や' putStrLn $ show January'を使ってください。 – epsilonhalbe
私はあなたのデータ型を 'Month'と呼んでいます - 複数形は通常、物のリストを示しています(これはちょうどコンベンションです) 。 1月ショーの代わりに – epsilonhalbe