我是镜头库的初学者。 我正在尝试从某些数据结构中提取列表。
我想知道如何实现满足的f
:
("a",[(0,'a'),(1,'b'),(2,'c')]) ^. _2 . f === [0,1,2]
经过努力,我找到了答案。
g :: Functor f => Getting a s a -> (forall b. Getting (f b) (f s) (f a))
g = to . fmap . view
f = g _1
是否有与g
对应的库函数?
否则,有没有更优雅的方式来实现这样的f
?
答案 0 :(得分:4)
我会去
("a",[(0,'a'),(1,'b'),(2,'c')]) ^.. _2 . traverse . _1
(请注意^..
而不是^.
,因为这是一次遍历。)