W Control.Lens.Traversal
funkcja beside
przechodzi przez obie części Bitraversable
. Podany przykład jestJak mogę przemierzać różne części struktury danych jedna po drugiej?
>>> ("hello",["world","!!!"])^..beside id traverse
["hello","world","!!!"]
mogę napisać bardziej wyraźny wersję beside
(nazwijmy go bothParts
), że zamiast Bitraversable
przymusu trwa dwa Traversal
s? Wyobrażam sobie, że można go używać w następujący sposób:
>>> ("hello",["world","!!!"])^..bothParts _1 _2 id traverse
["hello","world","!!!"]
Czy to już istnieje? Czy to zbyt niebezpieczne, aby można go było używać w zdrowy sposób? Dziękuję Ci!
Edit:
A może coś takiego:
>>> ("hello",["world","!!!"])^..bothParts _1 (_2.traverse)
["hello","world","!!!"]
Sądzę, że 'bothParts l1 l2' nie zawsze będzie prawidłowym' Traversal'. Rozważmy "bothParts _1 _1" (lub jakikolwiek inny przypadek, w którym nakładają się "l1" i "l2"). – fizruk