레코드의 중첩 된 값을 업데이트하는 간결한 방법 Elm (0.18) 레코드의 중첩 된 값을 업데이트하는 간결한 방법을 찾고 있습니다.Elm (0.18)
다음 예 감안할 때 :
이person = { name = "Steven", address = { country = "Spain", city = "Barcelona" } }
나는 "스티브"다음 식을 사용하는 person.name를 업데이트 할 수 있습니다 그러나
{ person | name = "Steve" }
를, 내가 중첩을 업데이트하는 방법을 찾고 있어요 값. 예를 들어, 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