繁体   English   中英

Haskell中是否有标准的不可变“ Map”类型类(例如Data.Map,Data.HashMap)?

[英]Is there a standard immutable “Map” (e.g. Data.Map, Data.HashMap) typeclass in Haskell?

可以理解,字典的概念似乎引起了许多不同的实现。 由于这是Haskell,因此我将重点介绍不变的地图/哈希/字典。 我希望能够为正在使用的小库使用类型类,并允许用户选择其Hash / Map / Dict实现。

如果没有标准的类型类,似乎通过黑客提供类型类可能会很有用,但如果失败,那么(作为库/ API提供者)仍然可以从使用黑客软件包或自己的类型类中获得收益,从而使用户受益为地图选择给定的实现。

假设我没有错过Dicts的类型类,那么关于不可变的字典,有什么特别的东西与Haskell中的类型类不兼容吗?

更新

为什么Haskell缺少“明显的” Typeclasss这个更笼统的问题提供了许多有用的见解,对解答这个问题有很长的路要走,但没有为这种特殊情况提供实用的解决方案。

为类似于Map的数据结构使用typeclass存在一些无法解决的问题。 幸运的是,背包有帮助。 您可以在此处通过背包查看Map界面:

我已经实现了该解决方案,并撰写了有关此类接口的博客文章:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM