2011-10-27 166 views

回答

37

類型數據類型指的是完全相同的概念。

哈斯克爾關鍵字typedata是不同的,但:data讓你引入一個新的代數數據類型,而type只是讓一個類型的同義詞。

查看詳情Haskell wiki

+1

要完成的圖片,有'newtype'太。掌握'newtype T a = T a'和'data T a = T a'之間的區別是很困難的,但是非常重要。 –

+0

我在一個例子中看到了newtype。那麼你的例子有什麼不同? – user997112

+1

@ user997112 'newtype'只是一種編譯時的類型,用來創建一種同義詞,但被當作一種不同的類型,你可以將它包裝在一個'data'中,但它會在運行時增加一些開銷。它向編譯器顯式說明你想要類型差異化,而沒有運行時間的開銷長篇小說:http://www.haskell.org/haskellwiki/Newtype – Ptival

1

這些術語有時是混合的,但通常「數據類型」是指使用關鍵字data引入的類型,該關鍵字具有可以進行模式匹配的構造函數。這些也被稱爲代數數據類型」。

剛‘型’是一個更通用的術語也包括各類使用newtype,功能類型等創建的。

+0

所以會自己輸入包括Integer等? – user997112

相關問題