deriving宣言
Line型はShowクラスのインスタンスなのであとは処理系が適宜クラスメソッドを用意しろ、という意味。どういうことですか。。。
data Line = Line Int String deriving Show main = do print $ Line 2 "fjadsfkas"
出力
Line 2 "fjadsfkas"
フィールドラベルを付けてみる
data Line = Line { number :: Int, string :: String } deriving Show main = do print $ Line 2 "fjadsfkas"
出力もラベル付きな感じになった
Line {number = 2, string = "fjadsfkas"}
Lines型のタプルをリストに放りこんで出力させた
data Line = Line { number :: Int, string :: String } deriving Show myLines :: [Line] myLines = [(Line 4 "4th line"), (Line 3 "3th line"), (Line 9 "9th line") ] main = do print $ Line 2 "fjadsfkas" print $ myLines
リストで出てきた
Line {number = 2, string = "fjadsfkas"} [Line {number = 4, string = "4th line"},Line {number = 3, string = "3th line"},Line {number = 9, string = "9th line"}]