Usa lentes para actualizar registros anidados (algo específico de los lenguajes con datos inmutables).
Actualizar los campos de registros anidados e inmutables es bastante molesto. El código para esos casos es tan engorroso como profunda es la estructura. Si tienes, digamos, un Person, que contiene un Address, que tiene un Street, que tiene un Number, actualizar el Number requiere crear un nuevo Street con el nuevo Number, luego un nuevo Address con el nuevo Street y, por último, un nuevo Person. ¿Ya te confundiste?
Una solución para este problema es usar lentes.
Implementa varias funciones de acceso a registros usando lentes. La suite de pruebas también te permite prescindir de las lentes por completo, para que puedas experimentar con distintos enfoques.
En Scala, una alternativa popular para usar Lens que es compatible con Exercism es Monocle.
Regístrate en Exercism para aprender y dominar Scala con 95 ejercicios y mentoría humana real, todo gratis.