在此答案中发布的Monoid实例中,这也是可能的:使用镜头从地图中获取多个结果
import Data.Monoid
import Control.Lens
instance Monoid r => Monoid (Accessor r a) where
mempty = Accessor mempty
mappend (Accessor a) (Accessor b) = Accessor $ a <> b
测试:
*Control.Lens Data.Monoid> ('a','b','c','d') ^.. (_1 <> _2 <> _3)
"abc"
“ abc”只是['a','b','c'],所以这就是您想要的。
(更新:现代lens
版本默认情况下包括该实例,因此第二个代码片段应该可以直接使用。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句