値コンストラクタ
0個以上の引数を取って新たな値を作るもの
データ型定義の、実際に型が取りうる値の種類を指定する
右辺だけの話
data Bool = False | Trueの=の右側の部分のこと
data Shape = Circle Float Float FloatのCircle
上の定義だと:t Circleとすると、Circle :: Float -> Float -> Float -> Shapeが得られる
つまり、値コンストラクタは関数と見ることができる
Just aのように引数を取るものもあればTrueなどのように取らないものもある
Justなどのように引数を取るものは、データ型の値を返す関数となる
code:Haskell
data Shape = Circle Float Float Float
-- > :t Rectangle
-- Rectangle :: Float -> Float -> Float -> Float -> Shape
フィールドに名前をつけたければレコード構文を使えばいい
code:hs
data Person = Person { Name :: String, age :: Int }