-- このように関数を型宣言することが出来る factorial :: Integer -> Integer factorial n = product [1..n] -- 宣言する型が Float と Double とで、結果が変わる circumference :: Float -> Float circumference r = 2 * pi * r circumference' :: Double -> Double circumference' r = 2 * pi * r
Main> :t factorial factorial :: Integer -> Integer Main> factorial 50 30414093201713378043612608166064768844377641568960512000000000000 Main> :t circumference circumference :: Float -> Float Main> circumference 4.0 25.132742 Main> circumference' 4.0 25.132741228718345
Int 有界の整数で、最大値と最小値が存在する
Integer 有界が存在しない整数
Float 単精度浮動小数点数
Double 倍精度浮動小数点数
Bool 真理値型 True か False
Char Unicode文字
ちなみに、タプルも型だが、その定義は要素の数とそれぞれの型によって決まるので、
理論的には無限の種類のタプル型が存在することになる。