型変数
型変数ってなんだ? TaPLをよめばいいらしいよ
型変数とはあれだよList aのaだよ
Javaでいうジェネリクス?
例えば
code:List.elm
length : List a -> Int
{- length 1, 2, 3 == 3 -}
Listの長さを調べるときにListの中の値がなんの型かは考慮しない
型変数は一度確定したら確定してしまう
code:elm
[] -- 空リストのリテラル : List a
intEmpty : List Int
intEmpty = []
intEmptyはList Intなので中身がないからといってList aの不確定の状態に戻ったりしない
いい感じに推論してくれるのでいい感じに直すこと
Elmの特殊な型変数もある