首页 > 解决方案 > 从映射到其关联对的光学

问题描述

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

标签: haskellhaskell-lenshaskell-optics

解决方案


opticslens中,您应该能够编写:

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

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


推荐阅读