在英语语义中,"类型演绎"等于"类型推断"?
我不确定是否
感谢。
答案 0 :(得分:3)
C ++规范和工作草案在引用没有类型声明作为引用的表达式类型时广泛使用“类型推导”;例如this working draft on concepts在谈论auto
- 声明变量时会使用它,我记得很多书在讨论模板时使用它的方式,当我不得不学习 - 然后随后忘记大部分--C ++时。然而,Type inference有自己的维基百科页面,也是编程语言理论研究领域的重要名称。如果你说类型推断,人们会立即想到现代类型的函数式编程语言。你甚至可以用它作为统治者来比较语言;有人可能会说他们的语言X或他们的库Y更容易输入推断,因此更好或更友好。
我想说类型推断是更具体,更精确,更广泛使用的术语。类型推导作为短语可能只保留C ++社区中的标记。这些术语是近亲,但他们使用的语境给他们带来了虚构的色彩。
答案 1 :(得分:2)
如上所述,类型推断在理论上被研究多年。它也是几种编程语言提供的常见功能,而不仅仅是Haskell。
另一方面,类型推导是C ++规范中定义的几个进程的通用名称,包括返回类型推导,占位符类型推导以及它们的来源,模板(类型)参数推导。它将要识别一个术语(在C ++ 简单类型说明符或模板参数中)隐含的类型,其中包含未知的待推导类型。它类似于类型推断,它是关于输入 - 确定术语的类型,但更受限制。
主要区别是:
如果不对C ++类型系统进行大规模的重新设计,这些限制就不会发生变化,所以它们必不可少。