Hatena::Grouphaskell

lnzntのHaskell日記 このページをアンテナに追加 RSSフィード

2010年11月26日(金)

多相型と多重定義型

| 21:06 | 多相型と多重定義型 - lnzntのHaskell日記 を含むブックマーク はてなブックマーク - 多相型と多重定義型 - lnzntのHaskell日記 多相型と多重定義型 - lnzntのHaskell日記 のブックマークコメント

多相型

length の例。length はどのような要素のリストにも適用可能である。

  length :: [a] -> Int

a は型変数型変数は小文字で始まる。通常 a, b, c, という名前が使われる。

length は多相関数、その型 [a] -> Int は多相型と呼ばれる。

多重定義

> 1 + 2
3
> 1.1 + 2.2
3.3

(+) の型。

  (+) :: Num a => a -> a -> a

Num a はクラス制約である。Num はクラス名、a は型変数

1つ以上のクラス制約を持つ型は多重定義型である。