2009-12-19 64 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都有類型推斷。

相關問題