Ich bin auf der Suche nach einer kurzen Möglichkeit zum Aktualisieren eines geschachtelten Werts in einem Datensatz in Elm (0,18).Kurze Möglichkeit zum Aktualisieren eines geschachtelten Werts in einem Datensatz in Elm (0.18)
das folgende Beispiel Gegeben:
person = { name = "Steven", address = { country = "Spain", city = "Barcelona" } }
I person.name aktualisieren kann "Steve" mit dem folgenden Ausdruck:
{ person | name = "Steve" }
Allerdings bin ich nach einer Möglichkeit, eine verschachtelte zu aktualisieren Wert. Zum Beispiel möchte ich person.address.city auf "Madrid" updaten. Ich habe folgendes versucht:
{ person | address.city = "Madrid" }
{ person | address = { address | city = "Madrid" } }
{ person | address = { person.address | city = "Madrid" } }
Der Compiler weist alle diese Variationen zurück. Die kürzeste gültige Option ich sehe, ist:
let personAddress = person.address in { person | address = { personAddress | city = "Madrid" } }
Dies scheint nur ein bisschen zu viel Code, um einen verschachtelten Wert zu aktualisieren, Wissen Sie, ob es eine bessere/kürzere Weg, dies zu erreichen?
Verwendung Ulme-Monokel https://github.com/toastal/toast.al-blog/blob/master/posts/code/2017-01-13-playing-with-prisms-for-the- not-so-isomorphic.md – rofrol