形式陈述
Algorithm W 对表达式结构递归,返回类型替换 let x=e_1 in e_2 在应用替换后的环境中泛化
直觉
语法递归产生等式约束,统一持续求解并把结果回写环境;泛化只发生在具有共享语义的 let 边界。
例子与边界
推论与应用
它解释 ML 系语言无需类型标注仍能得到最一般静态类型的原因。
参考资料
- Robin Milner, A Theory of Type Polymorphism in Programming (1978), algorithm W.
- Luis Damas, Robin Milner, Principal Type-Schemes for Functional Programs (1982), principal type schemes.