Ich habe eine Liste von Datensätzen und benötige eine Funktion, die die Liste nach einem Datensatz mit einem bestimmten Namen durchsucht und den Wert dieses Datensatzes ändert OR wenn kein Datensatz einen neuen Datensatz an den resultierenden anfügt Liste. Hier ist mein Code so weit:
%Vor% Es funktioniert gut, aber ich frage mich, ob es eine direktere Möglichkeit gibt, dies mit Data.Lens
(ohne if
-construct) zu schreiben? Muss ich auch die Funktion _find
schreiben oder gibt es in der Bibliothek etwas Entsprechendes?
Update : Hier ist ein Gist der Quelle zum Experimentieren: Ссылка
> Also, _find
ist eigentlich kein Traversal
:
Das ist der gleiche Sinn filtered
ist keine Traversierung.
Das Teilen kann mit filtered
imitiert werden (hier ist es in Ordnung, seit Fold
hat keine Gesetze):
Nun, angenommen "direkterer Weg" ist ein cleveres Traversal
: nein, das ist nicht möglich, Traversal
s kann die Struktur des durchlaufenen Objekts nicht verändern.