比方说我有
data SumType = A | B | C
list = [A, B, B, A, C, A]
(as, rest) = span (\case A -> True; _ -> False) list假设我有一个棱镜_A,有没有一种方法可以用lens写得更简洁呢?
发布于 2019-04-28 18:03:08
你可以说
(as, rest) = break (isn't _A) list在Control.Lens.Prism中定义了isn't。不幸的是,似乎没有对应的函数is' p = not . isn't p,尽管
(as, rest) = span (isRight . matching _A) list也行得通。
https://stackoverflow.com/questions/55889073
复制相似问题