22

类型推断的限制是什么?哪些类型的系统没有通用推理算法?

4

2 回答 2

12

Joe Wells表明,对于 System F,类型推断是不可判定的,这是 Girard 和 Reynolds 独立发现的最基本的多态 lambda 演算。这是显示类型推断局限性的最重要结果。

这是一个尚未解决的重要问题:将广义代数数据类型集成到 Hindley-Milner 类型推断中的最佳方法是什么?每年西蒙·佩顿·琼斯(Simon Peyton Jones)都会提出一个新的答案,据说比前一年的答案要好。我还没有阅读 2009 年 3 月的版本,所以不能说我是否相信它会是确定的。

于 2009-08-09T16:01:46.963 回答
6

值依赖类型系统(或简而言之,依赖类型系统)可以描述如下类型:“在评估时(运行时),此变量的值将始终等于该变量的值,即用不同的评估过程计算”。从代码中自动推断出这种类型需要自动证明定理。如果您可以表达的定理集仅限于那些可自动证明的定理,那将不是问题,但在依赖类型语言的情况下,通常情况并非如此。

因此,依赖类型系统不能具有一般(和完整)类型推断。

我相信有人可以提供一个道德正式和完整的答案......

于 2009-08-09T13:01:34.683 回答