Control.Lens.Fold contains filtered,我可以在应用一些单子操作之前使用它来过滤列表。似乎没有对应的filteredM- 但有没有办法获得这种效果?
要清楚,说我有
xs :: [ MyType ]
predM :: MyType -> MyMonad Bool
actionM :: MyType -> MyMonad ()
我如何适用于for which返回actionM的每个元素?xspredMTrue
一个重要的限制是我想predM在第一次调用之前对所有调用进行排序actionM- 所以我需要一种方法来对列表进行两次传递。我不能仅仅将predMand组合actionM成一个函数。