从地图到它的关联对的光学

Optic from map to its association pairs

我需要一个 Fold (Map k v) (k, v) 光学元件。有没有办法通过“光学”库获得它?如果没有,有没有带“镜头”的?

opticslens 中,您应该能够写:

pairs :: Fold (Map k v) (k, v)
pairs = folding Map.toList

一般来说 folding 接受任何产生可折叠结果的函数(在本例中为键值对列表)并在这些元素上创建折叠。