ふつうのHaskellプログラミング第3章Haskellの基礎(2)型と高階関数

3.1型と値

静的型チェックと型推論

ここまでまったくデータ型についての話が出てこなかった。ようやく型の登場。
Haskellには型推論があるので、たいていは型を明示的に宣言しなくてもいいらしい。

基本的な型

Int 整数値
Char 文字
String 文字列
Bool 真偽値
[○○] ○○のリスト

うーむ、リスト。
[1,2,3]は[Int]。
[ [1,2],[2,5] ]は[ [Int] ]。
[ [ [1,2],[2,5] ],[ [1],[5,6,7] ] ]は[ [ [Int] ] ]。←このへんまでくるとイメージ湧かない。

関数の型

line関数は、文字列が引数で文字列のリストが返り値だからString->[String]。
逆にunline関数は文字列のリストが引数で文字列が返り値だから[String]->String。

型変数

length関数はリストを引数にとって、その長さが返り値。
何のリストでも返り値は数値なので