top page > computer > haskell > web_lecture > for_programmer > touch_type_class.html
更新日:
文責: 重城良国

型クラスに触れる

(工事中 50%)

lecture13.hs lecture13.md

はじめに

型クラスについて見ていく。まずは既存の型クラスとそのインスタンスを見てみよう。

型クラスのチェック

型Charがどの型クラスに所属するのかを確認してみよう。

% ghci
Prelude> :info Char
data Char = GHC.Types.C# GHC.Prim.Char# -- Defined in `GHC.Types'
instance Bounded Char -- Defined in `GHC.Enum'
instance Enum Char -- Defined in `GHC.Enum'
instance Eq Char -- Defined in `GHC.Classes'
instance Ord Char -- Defined in `GHC.Classes'
instance Read Char -- Defined in `GHC.Read'
instance Show Char -- Defined in `GHC.Show'
Prelude>

型Charが型クラスBounded, Enum, Eq, Ord, Read, Showのインスタンスであることがわかる。

クラス関数のチェック

型クラスにどのようなクラス関数があるかを確認する。

Prelude> :info Eq
class Eq a where
(==) :: a -> a -> Bool
(/=) :: a -> a -> Bool
...

型クラスEqにはクラス関数(==)と(/=)とがある。

インスタンスのチェック

さっきの結果をもう一度見てみよう。

Prelude> :info Eq
class Eq a where
(==) :: a -> a -> Bool
(/=) :: a -> a -> Bool
...
instance Eq Integer
...
instance Eq Ordering
instance Eq Int
instance Eq Float
instance Eq Double
instance Eq Char
instance Eq Bool
...

基本的な型はすべて型クラスEqのインスタンスとなっている。

まとめ

対話環境で型クラスに関する情報を表示してみた。

「型クラスとは」へもどる 「1から学ぶHaskell」トップへ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics