4

我有一个IndexedTraversal(来自Control.Lens包),我想对其中的每个元素应用一个索引感知单子操作。不幸的是,我看到的所有做这样的事情的方便方式——比如^!act函数结合——似乎都忽略了每个元素的索引。有没有一种很好的方法来为索引遍历中的每个元素(及其索引)运行一个动作?

4

1 回答 1

1

imapMOf有效吗?你会按照imapMOf someIndexedTraversal actionWithIndex dataStructure我的想法使用它。

如果你只需要执行一个动作,还有imapMOf_ in Control.Lens.Fold

我没有过多地使用索引遍历,但我发现 API 有点混乱。大多数时候,我使用带有^.or的镜头^!,但对于索引遍历,通常的方法似乎是使用特殊的索引感知函数之一,这似乎有点不同。

于 2013-10-31T00:21:59.843 回答