型クラスとは?
かたくらす
型クラスとは、Haskellなどの関数型プログラミング言語における、特定の操作や振る舞いを持つ型の集まりを定義する仕組みです。
型クラス(Type Class)とは、関数型プログラミング言語、特にHaskellにおいて中心的な役割を果たす概念で、「ある型がどんな操作をサポートするか」を宣言するインターフェースの仕組みです。オブジェクト指向言語でいうインターフェースや抽象クラスに似ていますが、既存の型に後から振る舞いを追加できる点が異なります。
型クラスは次の3つの要素で成り立っています。
- クラス宣言:型クラスの名前と、その型が実装すべき関数(メソッド)のシグネチャを定義する
- インスタンス宣言:特定の型が型クラスをどのように実装するかを記述する
- 型制約:関数の型シグネチャで「この型は〇〇型クラスのインスタンスでなければならない」と制限する
代表的な型クラスの例として、Eq(等値比較ができる型)・Ord(順序比較ができる型)・Show(文字列に変換できる型)・Functor(関数をマップできるコンテナ型)などがあります。
型クラスの強みはアドホック多相性(Ad-hoc polymorphism)を実現できる点にあります。同じ関数名(例えば + や ==)を、異なる型に対して異なる実装でオーバーロードでき、かつそれがコンパイル時に型安全に解決されます。
HaskellのみならずScalaのimplicit/typeclass、Rustのtrait、SwiftのProtocolなど、現代の多くの言語が型クラスの考え方を取り入れており、型システムと多相性の設計において重要な概念となっています。
使い方・例文
「Int型をShow型クラスのインスタンスにすることで、数値を文字列に変換できるようになる」というように、型に振る舞いを付与する文脈で使われます。
この用語をシェア
最終更新: