あなたはあなたのような何かを与えることができ、交差点の種類のタイプのシステムを見てみることができますa :: Int -> Int | Bool -> Bool
あなたはには2つの専門ことを知っているので、Int
とはBool
十分にある、または実際に収集するために、制御フロー解析に続いて最も一般的なタイプを推測するために通常の型推論を使用します型引数。実際には、ハイブリッドアプローチがあります(CFAは型システムとして表現され、その逆も同様です)。
最も一般的なタイプではなく、最も一般的でないタイプを推測する研究が存在する可能性がありますが、私はそれらを知りません。
ポリモーフィズムを実装する手法については、2つのソリューションが存在します。1)特殊化(C ++テンプレートを考える)2)均一な表現の仮定(void *を含むCスタイルのコレクションを考える)。
2の場合、型チェック中にcall-siteからの型を必要とせず、個別のコンパイルをより簡単にサポートできます。
ここではパラメトリックポリモーフィズムについて話していることに注意してください。OO仮想メソッド呼び出しは、サブタイプポリモーフィズムと呼ばれるものとはまったく異なります。C ++テンプレートは、パラメトリックポリモーフィズムとダックタイピングのようなものをサポートしています。これは、ポリモーフィズムのもう1つの形式です。