所以我有一些我想在其中使用的 Haskell 代码Data.Set
。基本上是因为我没有过多地研究替代方案,并且需要一个结构来存储 Ord 的元素而不会重复。
我现在遇到了一种情况,我想为 Data.Set 使用类似 mapM 的东西,这样我就可以对集合的各个元素执行单子操作。我已经在Hayoo上搜索过类似的类型,(a -> m b) -> Set a -> m (Set b)
但没有找到任何有用的东西。
我还调查了Data.Traversable
一下,发现它有 []、Maybe 和 (Map k) 的实例,但没有 Set。
所以我的问题是:
- 为什么Data.Set中没有Set的mapM?
- 是否已经有一个包可以提供我错过的 mapM 之类的东西?
- 想要在 Sets 上映射 M 是否气馁?(为什么以及有什么替代方案?)