我是一名C++/Java程序员,我在日常编程中使用的主要范例是OOP.在某些线程中,我读到了一个注释,Type类本质上比OOP更直观.有人能用简单的单词解释类型类的概念,这样像我这样的OOP人能理解吗?
ML如何在以下函数定义中执行类型推断:
let add a b = a + b
Run Code Online (Sandbox Code Playgroud)
它是否像C++模板一样,在模板实例化之前不执行类型检查,如果类型支持必要的操作,函数可以工作,否则会抛出编译错误?
即,例如,以下功能模板
template <typename NumType>
NumType add(NumType a, NumType b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
会为...工作
add<int>(23, 11);
Run Code Online (Sandbox Code Playgroud)
但不会起作用
add<ostream>(cout, fout);
Run Code Online (Sandbox Code Playgroud)
我猜的是正确的还是ML类型的推理工作方式不同?
PS:抱歉我的英语不好; 这不是我的母语.