什么是Haskell中的一些抽象数据类型,它们与代数数据类型有什么不同?
答
抽象数据类型不会导出它们的实现,而是倾向于导出可用于构建和使用它们的函数。 containers
包装中有许多奇妙且经常使用的示例; Map
类型立即引发注意,它是一种非常丰富的API类型,但您不能看到实现细节。 Set
,Seq
和专门的IntMap
和IntSet
类型都是抽象的。
所有的Haskell类型都是代数的 - 这仅仅意味着它们都是由和,产品,函数类型和递归构成的。
您是否还有更多可供我们深入研究的抽象数据类型的例子? – McLeodx
像'Int'和'Char'这样的原始类型是否真的被认为是代数? – dfeuer
@dfeuer当然,他们只是(大,但)有限的总和。 –