技術のメモ箱

Haskell/型

型の調べ方

:tで式の型を調べることができる。::は「の型を持つ」という意味。

Prelude> :t 'a'
'a' :: Char
Prelude> :t 5
5 :: Num p => p

型変数

型変数は、任意のデータ型を表す変数のこと。

Prelude> :t head
head :: [a] -> a
Prelude> :t fst
fst :: (a, b) -> a

型クラス制約

=>より前にあるものは型クラス制約と呼ばれ、型変数の制限を表す。
以下の場合は、引数の型(a)はEqクラスのインスタンスでなければならないということ。

Prelude> :t (==)
(==) :: Eq a => a -> a -> Bool

型注釈

型注釈は、式が取るべき型をHaskellに明示的に教えてあげる手段。
式の終わりに::を追記し、そこに型を指定する。

Prelude> read "5" :: Int
5

関数の引数・戻り値の型の指定については、関数のページを参照。

代表的な型

説明
Int整数。範囲はマシンによって変わる。
Integer整数。とても大きい数を表すのに使える。
Float単精度浮動小数点数
Double倍精度浮動小数点数
Bool真理値型。TrueとFalseのみ。
CharUnicode文字を表す。

文字列について

文字列は文字のリストである。Stringは[Char]の別名。

Prelude> :t "hello"
"hello" :: [Char]

文字列を複数の行に分けて記述したい場合は、バックスラッシュを使うと分割できる。

str = "hello, \
\world"

型の定義

pagetop