트랙
/
F#
F#
/
연습 문제
/
렌즈 사용자
렌즈 사용자

렌즈 사용자

어려움

지침

중첩된 레코드를 갱신할 때는 렌즈를 사용해요(불변 데이터를 다루는 언어에 해당해요).

중첩된 불변 레코드의 필드를 갱신하는 일은 꽤 번거로워요. 그런 경우의 코드는 구조가 깊은 만큼이나 장황해져요. 예를 들어 Person이라는 레코드가 있고, 그 안에 Address가, Address 안에 Street가, Street 안에 Number가 있다고 해봐요. Number를 갱신하려면 새 Number를 담은 새 Street를 만들고, 그 새 Street를 담은 새 Address를 만들고, 마지막으로 그 새 Address를 담은 새 Person을 만들어야 해요. 벌써부터 헷갈리죠?

이 문제를 해결하는 한 가지 방법은 렌즈를 사용하는 거예요.

렌즈를 사용해 레코드에 접근하는 함수 몇 개를 구현해 봐요. 테스트 스위트는 렌즈를 아예 쓰지 않고도 여러 가지 접근 방식을 실험해 볼 수 있도록 허용해요.

힌트

  • 이 연습 문제에서는 F#에 렌즈 기능을 더해 주는 Aether 라이브러리를 사용해야 해요. 렌즈를 사용하면 중첩된 구조를 아주 쉽게 읽거나 갱신할 수 있어요.
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
F# Exercism

렌즈 사용자 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 F# 트랙을 개념 18개연습 문제 148개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.