فرد لنز

فرد لنز

دشوار

دستورالعمل‌ها

برای به‌روزرسانی رکوردهای تودرتو از lensها استفاده کنید (مخصوص زبان‌هایی که داده‌های تغییرناپذیر دارند).

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

یکی از راه‌حل‌های این مسئله استفاده از lenses است.

چند تابع برای دسترسی به رکوردها را با استفاده از lensها پیاده‌سازی کنید. مجموعه‌ی testها هم به شما این امکان را می‌دهد که اصلاً از lensها استفاده نکنید و با روش‌های متفاوت آزمایش کنید.

راهنمایی‌ها

  • این تمرین انتظار دارد که از کتابخانه‌ی Aether استفاده کنید، که قابلیت lenses را به F# اضافه می‌کند. با lenses می‌توانید ساختارهای تودرتو را به‌راحتی بخوانید یا به‌روزرسانی کنید.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
F# Exercism

آماده‌اید فرد لنز را شروع کنید؟

در Exercism ثبت‌نام کنید تا F# را همراه با 18 مفهوم148 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.