Haskell中有哪些抽象数据类型,它们与代数数据类型有何不同?

时间:2016-05-30 04:27:41

标签: haskell

Haskell中抽象数据类型的一些示例以及它们与代数数据类型的具体区别是什么?

1 个答案:

答案 0 :(得分:4)

抽象数据类型不会导出其实现,而是更喜欢导出可用于构建和使用它们的函数。 containers包中有许多奇妙且常用的例子; Map类型会立即引发作为具有非常丰富的API的类型,但您不允许查看实现详细信息。 SetSeq以及专门的IntMapIntSet类型都是抽象的。

所有Haskell类型都是代数 - 这只意味着它们都是由求和,乘积,函数类型和递归构成的。