Elm(0.18)のレコード内のネストされた値を簡潔に更新する方法を探しています。Elm(0.18)のレコード内でネストされた値を更新する簡単な方法
{ person | name = "Steve" }
は、しかし、私はネストされたを更新する方法を探しています:私は次の式を使用して、「スティーブ」にperson.nameを更新することができ
person = { name = "Steven", address = { country = "Spain", city = "Barcelona" } }
:
は、次の例を考えます値。たとえば、person.address.cityを「Madrid」に更新したいとします。私は、次のことを試してみました:
{ person | address.city = "Madrid" }
{ person | address = { address | city = "Madrid" } }
{ person | address = { person.address | city = "Madrid" } }
コンパイラは、これらすべてのバリエーションを拒否します。私が見最短有効なオプションは次のとおりです。
let personAddress = person.address in { person | address = { personAddress | city = "Madrid" } }
これは単に、ネストされた値を更新するために、少しあまりにも多くのコードのようです、それを達成するためのより良い/短い方法がある場合は、あなたが知っていますか?
使用ニレ、単眼鏡https://github.com/toastal/toast.al-blog/blob/master/posts/code/2017-01-13-playing-with-prisms-for-the- not -so-isomorphic.md – rofrol