Lens

Lens је апстракција из породице оптика која служи за имутабилно управљање деловима сложених структура. Састоји се од два дела: функције за извлачење вредности (getter) и функције за креирање нове верзије целе структуре са измењеном вредношћу на жељеном месту (setter)

Моћ ове апстракције лежи у композицији. Композицијом можемо направити Lens који гледа дубоко у угњеждену структуру и да га ажурира једном функцијом без ручног копирања целог објекта.

Уобичајени називи метода ове апстракције су get и set, међутим у помоћним библиотекама их можемо пронаћи под називима prop и assoc