トップQs
タイムライン
チャット
視点

型クラス

ウィキペディアから

Remove ads

計算機科学の)型クラス(かたクラス、Type class)は、アドホック多相英語版をサポートする型システムの機能である[1]パラメトリック多相英語版型変数英語版制約英語版を付加して、関数オーバーロードと演算子オーバーロードを実現するのが元々の目的になる[2]。その型変数に当てはめられたデータ型は、それへの制約でカテゴライズされることになる。

典型的な型クラスは、型クラスTと型変数aとそのaを引数/返り値にした総称関数英語版の構成で宣言される。aに型Xを当てはめたインスタンス化宣言でXTで制約されて、その型Xを引数/返り値にする関数演算子もインスタンス化される。総称関数も型Xでインスタンス化される[3]

型クラスは、Standard MLのeqtypesで提唱された後に、Haskellで初めて導入されている[4]。その主な目的は型注釈英語版などによる型システムの拡張的補正なしの関数オーバーロードの実現である[2]。これは純粋関数型英語版でのプログラムの形式的検証に必須になる。また、モナドの実践も容易にする。

その他の言語では、アドホック多相をサブタイプ多相に置き換えて、インターフェースジェネリクスを融合したような機能にされていることが多い。それはレコード構造体オブジェクトに実装されて、その振る舞いをカテゴライズする。

Remove ads

脚注

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads