In Control.Lens.Traversal
la funzione beside
attraversa entrambe le parti di un Bitraversable
. L'esempio dato èCome posso attraversare le diverse parti della struttura dati una dopo l'altra?
>>> ("hello",["world","!!!"])^..beside id traverse
["hello","world","!!!"]
Posso scrivere una versione più esplicita di beside
(chiamiamolo bothParts
) che invece di un vincolo Bitraversable
prende due Traversal
s? Immagino che sia usato così:
>>> ("hello",["world","!!!"])^..bothParts _1 _2 id traverse
["hello","world","!!!"]
Esiste già? È troppo pericoloso essere usato in modo sano? Grazie!
Edit:
O forse qualcosa di simile:
>>> ("hello",["world","!!!"])^..bothParts _1 (_2.traverse)
["hello","world","!!!"]
Penso che 'bothParts l1 l2' non sarà sempre un valido' Traversal'. Considera 'bothParts _1 _1' (o qualsiasi altro caso in cui' l1' e 'l2' si sovrappongono). – fizruk