2009-12-19 69 views

回答

5

请参阅Lambda终极版上的Anton van Straaten's post。它描述了Scheme中的潜在类型。

明显类型将用于静态类型语言,其中类型的术语是语法声明的或可以在编译时从其他此类术语推断。

2

潜类型:一种不需要显式类型声明的打字风格。它与duck typing,dynamic typingtype inference有关。您可以使用Python,Lisp,Haskell等语言查看这些内容。

清单类型:明确标识所有已声明变量的类型。像C,C++和Java这样的语言遵循这一点。

9

有时候,相同的概念在计算机科学的不同领域独立发明。这是其中的一种情况。什么计划社会各界来电清单打字,在世界其他地方调用隐含明确打字。意思是完全一样的:

明确/清单打字,程序员必须明确写下类型,因此类型在源代码中成为明显

暗含/潜在打字时,程序员不写下类型。这些类型因此是隐含潜在

请注意,隐式与显式类型的问题完全与例如动态与静态输入,强与弱输入,声音与不稳定输入,安全与不安全输入以及名义与结构与鸭子输入。例如,Haskell隐含,强烈,静态,健全,安全,结构类型化。

+0

我不知道哈斯克尔,你能否说明哈斯克尔中那些类型的特征? – unj2 2009-12-19 22:09:03

+0

加1!但Haskell在结构上如何输入? – 2015-01-25 11:29:31

1

难以回答您的问题的部分原因是,这是一个活跃的研究领域。特别是,有一大群人希望能够混合使用打字和非打字的语言,并允许程序在某些部分输入和某些部分不能输入。

我声称目前还没有广泛的一致意见,最终会把什么意义附加到术语“潜伏型”上。

但是,潜在类型和清单类型的问题与类型推断的问题并不相同。

类型推断是一种静态类型语言,是指一种系统,它可以在没有程序员帮助的情况下推导出程序​​术语的类型,通常使用hindley-milner风格类型的系统和统一。 Haskell和OCaml都有类型推断。

相关问题