У JavaScript лінзи - це концепція функціонального програмування, яка дає змогу отримувати доступ до даних і змінювати їх у модульний і незмінний спосіб. По суті, це пари чистих функцій-гетерів і функцій-сетерів, які можна поєднувати між собою і які зосереджуються на конкретному полі всередині обʼєкта.
Лінзи можна використовувати, щоб спрощувати код, робити його придатнішим для повторного використання та уникати поширених помилок програмування. Наприклад, за допомогою лінз можна:
Використайте лінзи, щоб оновлювати вкладені записи (це стосується мов із незмінними даними).
Оновлювати поля вкладених незмінних записів доволі дратівливо. Чим глибша структура, тим громіздкіший код для таких випадків. Якщо в нас є, скажімо, особа, яка містить адресу, що має вулицю, а та має номер, то для оновлення номера потрібно створити нову вулицю з новим номером, потім нову адресу з новою вулицею і, нарешті, нову особу з новою адресою. Ми вже заплуталися?
Одне з рішень цієї проблеми - використати лінзи.
Реалізуйте кілька функцій доступу до записів за допомогою лінз. Набір тестів також дозволяє нам взагалі обійтися без лінз, щоб ми могли поекспериментувати з різними підходами.
Зареєструйтеся на Exercism, щоб вивчати й опановувати JavaScript, а також 37 концепцій159 вправ та справжнє наставництво від людей, і все це безкоштовно.