次の関数定義で、ML はどのように型推論を実行しますか。
let add a b = a + b
テンプレートのインスタンス化の時点まで型チェックが実行されず、その後、型が必要な操作をサポートしている場合、関数が機能するか、コンパイルエラーがスローされる C++ テンプレートのようなものですか?
たとえば、次の関数テンプレート
template <typename NumType>
NumType add(NumType a, NumType b) {
return a + b;
}
のために働きます
add<int>(23, 11);
しかし、うまくいきません
add<ostream>(cout, fout);
私が推測していることは正しいですか、それとも ML 型推論の動作が異なりますか?
PS: 拙い英語で申し訳ありません。それは私の母国語ではありません。