www.un.org/spanish/ecosoc 什么是推论?
从历史上看,类型(或类型重建)意味着all 一项方案中的类型可以产生,而无需主要要求<>任何><>>> > 明确类型说明。 然而,近年来,它已成为方案拟定语言中的不法分子,主流是甚至最卑鄙的自下而上的扣除形式,即“类推”(例如,C++11的新auto
宣言)。 因此,人们开始增加“完整”以提及“真实”的东西。
What is full type inference?
There is a broad spectrum to what degree a language can infer types, and in practice, almost no language supports "full" type inference in the strictest sense (core ML is about the only example). But the main distinguishing factor is whether types can be derived for bindings that do not have a "definition" attached to them — in particular, parameters of functions. If you can write, say,
f(x) = x + 1
和类型系统显示,例如,有Int---Int类型,因此说这种推论是有意义的。 此外,我们谈到poly吗? e. 假设情况
g(x) = x
is assigned the generic type ∀(t) t → t automatically.
在简单型的Mlambda calculus和多形态的推论(在1970年代发明的Aka Hindley/Milner型推论)的背景下,便发明了各种类型的推论,即要求与多种语言的家庭(StandardML、OCaml和可以论证的Haskell)相呼应。
www.un.org/spanish/ecosoc 什么是完全的推论?
核心ML具有“完整”的多变型推论。 但这取决于其类型系统中多变性的某些限制。 尤其是,只有定义是通用的,而不是功能上的论据。 也就是说,
id(x) = x;
id(5);
id(True)
页: 1 在知道定义时,可以提供多种形态。 但
f(id) = (id(5); id(True))
由于<代码>id不能作为功能理由的多变性,因此在《电子商务示范法》中不作检查。 换言之,此类系统的确允许多种形态类型,如∀(t) t------,但不包括所谓的高等级多形态类型(∀(t) t---t)--- Bool,在那里,多形态的数值是以一流方式使用的(这简言之明,甚至很少明确分类的语文)。
混合体(也称为“System F”)允许后者。 但是,这是在类型理论中得出的一个标准结果,即整个系统F的重建类型是无法确定的。 Hindley/Milner击中了一种不太清晰的类型系统的血清点,这种类型的重建仍可计量。
更先进的类型系统特征也使得完全类型的重建无法预测。 还有一些人认为,这种做法是可恶的,但仍然无法做到,例如,存在临时超负荷或排他性的情况,因为这会导致交火的爆炸。