トップQs
タイムライン
チャット
視点
型クラス
ウィキペディアから
Remove ads
(計算機科学の)型クラス(かたクラス、Type class)は、アドホック多相をサポートする型システムの機能である[1]。パラメトリック多相の型変数に制約を付加して、関数オーバーロードと演算子オーバーロードを実現するのが元々の目的になる[2]。その型変数に当てはめられたデータ型は、それへの制約でカテゴライズされることになる。
典型的な型クラスは、型クラスT
と型変数a
とそのa
を引数/返り値にした総称関数の構成で宣言される。a
に型X
を当てはめたインスタンス化宣言でX
はT
で制約されて、その型X
を引数/返り値にする関数と演算子もインスタンス化される。総称関数も型X
でインスタンス化される[3]。
型クラスは、Standard MLのeqtypesで提唱された後に、Haskellで初めて導入されている[4]。その主な目的は型注釈などによる型システムの拡張的補正なしの関数オーバーロードの実現である[2]。これは純粋関数型でのプログラムの形式的検証に必須になる。また、モナドの実践も容易にする。
その他の言語では、アドホック多相をサブタイプ多相に置き換えて、インターフェースとジェネリクスを融合したような機能にされていることが多い。それはレコードや構造体やオブジェクトに実装されて、その振る舞いをカテゴライズする。
Remove ads
脚注
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads