In Control.Lens.Traversal
die beside
Funktion durchläuft beide Teile eines Bitraversable
. Das Beispiel istWie kann ich verschiedene Teile der Datenstruktur nacheinander durchlaufen?
>>> ("hello",["world","!!!"])^..beside id traverse
["hello","world","!!!"]
Kann ich eine explizitere Version von beside
schreiben (nennen wir es bothParts
), dass anstelle einer Bitraversable
Einschränkung dauert zwei Traversal
s? Ich stelle mir vor, dass es so verwendet wird:
>>> ("hello",["world","!!!"])^..bothParts _1 _2 id traverse
["hello","world","!!!"]
Gibt es das schon? Ist das zu unsicher, um vernünftig benutzt zu werden? Vielen Dank!
Edit:
Oder vielleicht so etwas wie:
>>> ("hello",["world","!!!"])^..bothParts _1 (_2.traverse)
["hello","world","!!!"]
Ich denke, dass 'bothParts l1 l2' nicht immer ein gültiges' Traversal' sein wird. Betrachte 'bothParts _1 _1' (oder jeden anderen Fall, wenn' l1' und 'l2' sich überlappen). – fizruk