At 2002-02-24 22:46, Tom Bevan wrote: >I've come across this sort of data constructor below many times but I'm >not really sure how to use it. Can someone please point me to the right >section in the documentation?
http://haskell.org/onlinereport/decls.html#sect4.2.1 "Labelled Fields" >In particular, I want to know how to create a calendar time and how to >access the fields . > >Tom > >data CalendarTime = CalendarTime { > ctYear :: Int, > ctMonth :: Month, > ctDay, ctHour, ctMin, ctSec :: Int, > ctPicosec :: Integer, > ctWDay :: Day, > ctYDay :: Int, > ctTZName :: String, > ctTZ :: Int, > ctIsDST :: Bool > } deriving (Eq, Ord, Read, Show) Basically it's equivalent to this: data CalendarTime = CalendarTime Int Month Int Int Int Int Integer Day Int String Int Bool deriving (Eq, Ord, Read, Show); ctYear (CalendarTime x _ _ _ _ _ _ _ _ _ _ _) = x; ctMonth (CalendarTime _ x _ _ _ _ _ _ _ _ _ _) = x; ctDay (CalendarTime _ _ x _ _ _ _ _ _ _ _ _) = x; etc. ...but you can also use the labelled fields to construct: CalendarTime { ctYear = 2002, ctMonth = 2, ... } -- Ashley Yakeley, Seattle WA _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe