[英]Does there exist a generic “associative array” or “dictionary” typeclass in Haskell for which both Data.Map and Data.HashMap can be made instances?
[英]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.