1

我想在 2 级映射中设置一个值 - 即映射中的一个键,该键是“外部”映射中某个键的值。对于普通的 Map 我可以使用类似m & at 42 ?= "value" 但我找不到任何方法来嵌套 2at使用镜头设置这种嵌套值的最简单方法是什么?

4

2 回答 2

3

用户陷门显示有一个更好的解决方案 - http://juick.com/qrilka/2602819#19它就在镜头库中:

于 2013-12-04T12:09:09.387 回答
2

有点,_Just如果没有可用的密钥,我们可以使用不会操作的棱镜。不幸的是,我们无法创建 2 层以下的键。但作为一个例子

at2 :: Ord k => k -> k -> IndexedTraversal' k (Map k (Map k v)) (Maybe v)
at2 k1 k2 = at k1 . _Just . at k2
于 2013-12-04T05:43:10.927 回答