data Date = Datum Year Month Day
type Year = Int
data Month = Jan | Feb | Mar | ...
type Day = Int
Naiver Weg:
day :: Date -> Day
day (Datum y m d) = d
month :: Date -> Month
month (Datum y m d) = m Record Syntax!
data Date = Datum Year Month Day
zu
data Date = Datum { year :: Year
, month :: Month
, day :: Day }
> month (Datum 2019 Nov 19)
Nov
> :t month
month :: Date -> Month beliebige Reihenfolge der Daten bei der Konstruktion:
> Datum 2019 Nov 19 == Datum {day=19, month=Nov, year=2019}
True