Статьи

Функциональный JavaScript: линзы

Одним из наиболее интересных выступлений среди тех, на которых я присутствовал в  lambda.world,  были «  Функциональные линзы на JavaScript»  от  FlavioCorpa . Он говорил о функциональных линзах на практике; более того, он начал с собственной небольшой реализации (не для производства), а затем рассказал о различных библиотеках, таких как  Ramda  или  Monocle-TS .

Беседа началась с простого для понимания определения для тех из нас, кто знаком с процедурным / императивным программированием: «Линзы — это в основном функциональные геттеры и сеттеры». По сути, то, что мы получаем с помощью линз, — это возможность многократного использования доступа к данным структуры модульным и неизменным способом либо для получения данных, либо для их изменения. Позже мы увидим примеры, чтобы лучше понять это.

Функциональные линзы в JavaScript

Давайте начнем с очень маленькой реализации объектива:


JavaScript