by shigemk2

当面は技術的なことしか書かない

一般的なHaskellの型

-- このように関数を型宣言することが出来る
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文字

ちなみに、タプルも型だが、その定義は要素の数とそれぞれの型によって決まるので、
理論的には無限の種類のタプル型が存在することになる。