我正在尝试使用元素的索引从
Array a
中删除元素,但我找不到使用 Lens
es 执行此操作的方法。我还想知道为什么 Array
不提供 At
镜头的实例。有指示吗?
我还想知道为什么 Array 不提供
镜头的实例。At
您可以查看
Control.Lens.At
模块文档 获取提示:
...不是类似数组的数组,因为你无法满足透镜定律
违反的法律之一是
set l v' (set l v s) ≡ set l v' s
。原因是删除一个索引会移动其他索引。所以下面的内容是没有意义的:
myArray
& at 6 .~ Nothing
& at 6 .~ Just 10
我不知道有什么方法可以像 Lens 一样删除数组元素。