【发布时间】:2016-04-17 23:00:12
【问题描述】:
假设我有一个像at _ 这样的镜头需要一些Maybe a:
import Data.Map as M
m = M.fromList [(1,(2,3))]
--set 2nd element
m ^. at 1 .~ Just (4,5)
--gives fromList [(1,(4,5))]
m ^. at 1 .~ Nothing
--gives fromList ()
现在假设我想用另一个镜头来构图。这个镜头返回一些Maybe a 的事实使我无法直接这样做。
m ^. at 1 . _2 .~ Just 4
--error
-- I want to get M.fromList [(1,(2,4))]
这样做的正确方法是什么?
【问题讨论】:
标签: haskell haskell-lens lenses