[...]すべての値コンストラクターはnullary(パラメーター、つまりフィールドを取りません)であるため、列挙型クラスの一部にすることができます。
data Day = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday deriving (Eq, Ord, Show, Read, Bounded, Enum)
今、私が数ヶ月かかると、それは
data month = January | February | March | April | May | June | July | August |September | October | November |December deriving (Eq, Ord, Show, Read, Bounded, Enum)
私の質問は次のとおりです。
- 各月の最大日数の値をどこに保存しますか?
- うるう年の場合は2月の場合、2月のmaxDaysは29日であり、それ以外の場合は28日になります。
Javaでは、次のようにコーディングできます。
public enum Month {
January (31),
February (29),
March (31),
April (30),
May (31),
June (30),
July (31),
August (31),
September (30),
October (31),
November (30),
December (31),
;
private int maxDays; // instance variables
private (int maxDays) { // constructors always private
this.maxDays = maxDays;
}
Public int getMaxDays () {
return maxDays;
}