haskell - 如何使用镜头库通过索引从列表中删除项目?

标签 haskell haskell-lens lenses

我可以使用这样的镜头查看列表中的第四项:

preview (ix 3) myList

是否有什么东西可以代替“预览”,以便从列表中删除第四个项目而不是查看它?返回列表应与原始列表相同,即第 4 项将被删除。

或者也许有一种方法可以使用过滤函数来做到这一点?

最佳答案

听起来您想使用 ifiltered :

toListOf (folded . ifiltered (\i _ -> i /= 3)) $ myList

-- or

myList ^.. folded . ifiltered (\i _ -> i /= 3))

关于haskell - 如何使用镜头库通过索引从列表中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26252153/

相关文章:

haskell - 使用lens、cosmosOf、uniplate 和 State monad 提取有关 AST 的信息

haskell - 使用镜头作为 `map`

scala - 如何在嵌套案例类中查找和修改字段?

haskell - 棱镜或仿射遍历的对偶是什么?

haskell - 使用 Haskell fork 到 shell 脚本并终止原始进程

haskell - Haskell 在 2013 年有多重要?

haskell - 在 Haskell 中使用模式匹配时,两种风格的函数定义背后的原因是什么?

haskell - 使用透镜对 StateT 中的内部单子(monad)进行操作

optimization - 优化 Haskell 递归列表

haskell - 是否有标准组合器将镜头的结果包装在仿函数中?