Dictionary 为什么Data.Map.Map不是Bifunctor?
在Dictionary 为什么Data.Map.Map不是Bifunctor?,dictionary,haskell,containers,bifunctor,Dictionary,Haskell,Containers,Bifunctor,在映射中存储数据时,我最近正在寻找一个Bitraversable实例,因为我想遍历键和值。令我惊讶的是,我发现Map甚至没有Bifunctor实例,即使第一个(mapKeys)和第二个(Map)的实现都存在 这有什么具体的原因吗?或者这个决定只是为了最小化依赖关系 谢谢左侧的实现不存在,因为映射键有一个约束: Ord k2 => (k1 -> k2) -> Map k1 a -> Map k2 a left必须适用于任何一对类型k1和k2left的实现(您实际上是指fi
映射中存储数据时,我最近正在寻找一个Bitraversable
实例,因为我想遍历键和值。令我惊讶的是,我发现Map
甚至没有Bifunctor
实例,即使第一个(mapKeys
)和第二个(Map
)的实现都存在
这有什么具体的原因吗?或者这个决定只是为了最小化依赖关系
谢谢左侧
的实现不存在,因为映射键
有一个约束:
Ord k2 => (k1 -> k2) -> Map k1 a -> Map k2 a
left
必须适用于任何一对类型k1
和k2
left
的实现(您实际上是指first
吗?我要写left
而不是first
无处不在),因为映射键有一个约束:
Ord k2 => (k1 -> k2) -> Map k1 a -> Map k2 a
left
必须适用于任何一对类型k1
和k2
对于许多类型类,我们必须处理单态情况,但有趣的是,我找不到一个MonoBifunctor
,虽然名称有点矛盾,但它似乎是一个有用的类型类。对于许多类型类,我们必须处理单态情况,但有趣的是,我找不到一个MonoBifunctor
,虽然名称有点矛盾,但它似乎是一个有用的类型类。