برای بهروزرسانی رکوردهای تودرتو از lensها استفاده کنید (مخصوص زبانهایی که دادههای تغییرناپذیر دارند).
بهروزرسانی فیلدهای رکوردهای تودرتوی تغییرناپذیر تا حدی آزاردهنده است.
کد چنین مواردی به همان اندازه که ساختار عمیق است، دستوپاگیر میشود.
فرض کنید یک Person دارید که شامل یک Address است، آن هم یک Street دارد که یک Number دارد؛ بهروزرسانی Number نیازمند ساختن یک Street تازه با Number تازه است، بعد یک Address تازه با Street تازه و در نهایت یک Person تازه با Address تازه.
گیج شدهاید؟
یکی از راهحلهای این مسئله استفاده از lenses است.
چند تابع برای دسترسی به رکوردها را با استفاده از lensها پیادهسازی کنید. مجموعهی testها هم به شما این امکان را میدهد که اصلاً از lensها استفاده نکنید و با روشهای متفاوت آزمایش کنید.