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:对不起我的英语不好;这不是我的母语。