Ich muss ein Feld eines sehr großen Standarddatensatzes aktualisieren.Aktualisieren eines einzelnen Felds in einem Datensatz mit Haskell @
Da sich der Standard möglicherweise ändert, möchte ich den gesamten Datensatz nicht manuell neu erstellen.
Jetzt habe ich auf die folgende Art und Weise kommen, dies zu tun, aber ich bin nicht sicher, wie es funktioniert:
unaggregate :: MyResult -> MyResult
unaggregate [email protected]{..} = calc{ the_defaults = the_override
`mappend` the_defaults }
where
the_override = create ("aggregation" := False)
Ich habe versucht, für ‚Haskell Operator @‘ in Google gesucht, aber es gibt nicht sofort nützliche Informationen.
Ich sah irgendwo [email protected]{..}
tut Mustervergleich auf Variablen, aber ich sehe nicht, welche Variable calc
für die MyResult
Rekord tut ...
Auch habe ich nachgeschlagen mappend
(und Monoide), und ich bin nicht sicher, wie diese arbeiten entweder ...
Sie für jede Hilfe danken
vielen dank, was tut 'mappend' tun – user3203476
Wie du oben gesagt, es ist eine Operation auf Monoide Monoide etwas sind, die a) leer sein kann und b) sein". hinzugefügt "zusammen. Also, Listen sind Monoids. Sie können eine leere Liste ('[]') haben und Sie können Listen zusammenfügen ('mappend [1] [2] == [1,2]'). Mayben und Karten und Text und viele andere Dinge sind auch Monoids, also können Sie diese auch "mappen". – Libby
eine sehr klare Antwort !! Vielen Dank für deine Zeit !! – user3203476