在Haskell中是否存在通用的“关联数组”或“字典”类型类,Data.Map和Data.HashMap都可以作为实例?

时间:2018-03-29 22:21:50

标签: haskell associative-array typeclass

我想设计一个API,它接受一个字典结构作为输入,以保证所有键都是唯一的。但是,我不想对用户强加任何特定的字典实现。

例如,用户应该能够提供HashMap(来自unordered-containers)或Map(来自containers)作为输入。

这可能,甚至是个好主意吗?

2 个答案:

答案 0 :(得分:10)

镜头中,以下类概括了HashMapMap等容器:AtFunctorWithIndexFoldableWithIndex,{ {3}}

答案 1 :(得分:0)

我刚看到这篇博客文章“ Picnic: put containers into a Backpack”,这是一种实验方法,可为容器提供统一的界面。

使用背包的方法归纳为:

  

首先,编写所需方法的类型-签名。然后为不同的数据类型实现这些签名。

博客文章中填写了详细信息。