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

McL*_*odx 1 haskell

Haskell中的抽象数据类型有哪些示例?它们与代数数据类型有何具体区别?

Dan*_*ner 5

抽象数据类型不导出其实现,而是倾向于导出可用于构建和使用它们的函数。containers程序包中有许多很棒且经常使用的示例。该Map类型作为具有非常丰富的API 的类型立即浮现在脑海中,但不允许您查看其实现详细信息。的SetSeq以及专业IntMapIntSet类型都是抽象的也是。

所有Haskell类型都是代数的-这仅表示它们都是由求和,乘积,函数类型和递归构造的。