gpt4 book ai didi

haskell - 我可以使用一元操作从 Control.Lens 中过滤 Fold 吗?

转载 作者:行者123 更新时间:2023-12-02 12:40:49 25 4
gpt4 key购买 nike

Control.Lens.Fold 包含 filtered,我可以在应用某些单子(monad)操作之前使用它来过滤列表。似乎没有相应的 filteredM - 但有没有办法达到这种效果?

为了清楚起见,说我有

xs      :: [ MyType ]
predM :: MyType -> MyMonad Bool
actionM :: MyType -> MyMonad ()

如何将 actionM 应用于 xspredM 返回 True 的每个元素?

一个重要的限制是,我想在第一次调用 actionM 之前对所有 predM 调用进行排序 - 因此我需要一种方法来对列表进行两次传递。我不能将 predMactionM 合并到一个函数中。

最佳答案

为什么不

mapM_ actionM <=< filterM predM $ toListOf YOUR_LENS_HERE YOUR_OBJECT_HERE

或者只是

mapM_ actionM <=< filterM predM $ xs

如果你真的只需要处理一个列表

关于haskell - 我可以使用一元操作从 Control.Lens 中过滤 Fold 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com