型コンストラクタ
0個以上の型を引数に取り新たな型を作るもの
型引数を1つ取って具体型を作るもの
「型引数」と「型コンストラクタ」は違うのか
型コンストラクタは:tでは調べられない
型コンストラクタと値コンストラクタの違い
雑に言うと、右辺が型で、左辺が値やmrsekut.icon
dataを使って、以下の様に型を定義したとする
code:hs
data Id a = Id a
-- data 型 = 値
左辺のIdが型コンストラクタ
右辺のIdが値コンストラクタ
例
型[]はリストの型コンストラクタ
型(,)はタプルの型コンストラクタ
型Eitherは型2つを包んでEither a bを作るEitherの型コンストラクタ
Maybe型という「型コンストラクタ」を使ってMaybe Intのような「具体型」を作れる
型コンストラクタと関数の類似点
部分適用ができる
いずれは具体型になる
参考