Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dictionary 为什么Data.Map.Map不是Bifunctor?_Dictionary_Haskell_Containers_Bifunctor - Fatal编程技术网

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
,虽然名称有点矛盾,但它似乎是一个有用的类型类。