6
を成功した場合にのみ、私は次のリスト持っている想像してみて成功する:レンズのライブラリを使用して2つの折り畳みやゲッターを適用し、両方
がlst :: [(Bool, Maybe Integer)]
lst = [(True, Just 3), (True, Nothing), (False, Just 12)]
、私はタプルの要素を抽出したいのが、私はそれが成功したいです2番目の要素がJust
の場合
> lst ^.. folded.split (_1.to not) (_2._Just)
[(False, 3), (True, 12)]
私自身はこのようsplit
実装することができます:
split :: Getting (First a) s a -> Getting (First b) s b -> Fold s (a, b)
split a b = folding (\x -> (,) <$> (x ^? a) <*> (x ^? b))
...動作しているようです、私はこのように動作しますいくつかの光、split
をしたいです。しかし、私は車輪を再発明する必要があるようです。レンズライブラリーで既にこれを実現しているものはありますか?