使用`lens`库,与`span`相当的是什么?

3
假设我有一个:
data SumType = A | B | C

list = [A, B, B, A, C, A]

(as, rest) = span (\case A -> True; _ -> False) list

假设我有一个棱镜_A,是否有一种更简洁的方式使用lens来编写它?
1个回答

5
你可以这样说:
(as, rest) = break (isn't _A) list

isn'tControl.Lens.Prism中被定义。不幸的是,似乎没有对应的函数is' p = not . isn't p,尽管

(as, rest) = span (isRight . matching _A) list

也可以工作。

2
Control.Lens.Fold.has 作为 isn't 的否定。 - danidiaz
谢谢!似乎有Control.Lens.Extras.is - user239558

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接