サブタイピング多相
subtyping polymorphism
例えば、ある関数の引数が型
T
を取る時、
T
の
派生型 (derived type)
である
型U
も取れるような性質
型同士の間に部分型関係と呼ばれる順序関係を与え、その順序に基づいて式に複数の型を与えるもの
OOP
での「ポリモーフィズム」
動的な多相
関連
variance
公称的部分型
サブタイプの関係性を明示する
構造的部分型
構造によってサブタイプが決まる
Haskellにはサブタイピング多相はない
#??
型クラス
の継承関係はサブタイピング多相とはいわない?
ex.
JavaやC#などのオブジェクト指向言語の型システムで使われている
TypeScriptやJavaの
<T extends string>
のようなもの?
Haskellでのサブタイピング多相
https://kazu-yamamoto.hatenablog.jp/entry/20081024/1224819961