2011-10-27 215 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

相关问题