2013-10-30 3 views
4

나는 (Control.Lens 패키지에서) IndexedTraversal을 가지고 있으며 그 안에있는 각 요소에 인덱스 인식 모나 딕 액션을 적용하고 싶습니다. 불행히도 ^!act 함수를 결합하여 이와 같은 작업을하는 편리한 방법은 각 요소의 인덱스를 무시하는 것 같습니다. 인덱싱 된 트래버스에서 모든 요소 (및 해당 인덱스)에 대해 작업을 실행하는 좋은 방법이 있습니까?Control.Lens의 IndexedTraversal을 사용하여 각 요소에 대해 인덱스 인식 작업을 수행하는 방법은 무엇입니까?

답변

1

imapMOf이 작동합니까? 당신이 생각하기로는 imapMOf someIndexedTraversal actionWithIndex dataStructure이라고 생각합니다.

조치를 수행하기 만하면 imapMOf_Control.Lens.Fold에 있습니다.

색인 된 순회를 많이 사용하지는 않았지만 API가 다소 혼란 스럽습니다. 대부분의 경우 ^. 또는 ^!과 함께 렌즈를 사용하지만 인덱스 된 트래버스의 경우 일반적으로 특별한 인덱스 인식 기능 중 하나를 사용하는 것처럼 보입니다.

+0

Control.Lens.Indexed.withIndex를 사용하여 몇 가지 제한 사항이있는 (인덱스, 값) 튜플을 순회 할 수도 있습니다. 하지만 대부분의 경우 imapMOf와 다른 조합자인 연결자를 사용하는 것이 더 편리하다고 생각합니다. – mithrandi