नेस्टेड रिकॉर्ड अपडेट करने के लिए लेंस का इस्तेमाल कीजिए (यह उन भाषाओं पर लागू है जिनमें इम्यूटेबल डेटा होता है)।
नेस्टेड और इम्यूटेबल रिकॉर्ड के फील्ड अपडेट करना थोड़ा परेशान करने वाला होता है। ऐसे मामलों में संरचना जितनी गहरी होती है, कोड उतना ही बोझिल होता है। मान लीजिए, आपके पास एक Person है, जिसमें एक Address है, जिसमें एक Street है, जिसमें एक Number है। अब Number को अपडेट करने के लिए नए Number वाली नई Street बनानी पड़ती है, फिर नई Street वाला नया Address, और अंत में नए Address वाला नया Person बनाना पड़ता है। क्या आप पहले ही उलझ गए हैं?
इस समस्या को हल करने का एक तरीका है लेंस का इस्तेमाल करना।
लेंस का इस्तेमाल करके रिकॉर्ड एक्सेस करने वाले कई फंक्शन बनाइए। टेस्ट सूट भी आपको लेंस के बिना काम करने देता है, ताकि आप अलग-अलग तरीके आज़मा सकें।
Scala में, Lens इस्तेमाल करने का एक लोकप्रिय विकल्प जिसे Exercism समर्थन देता है, Monocle है।