Я пытаюсь достичь более глубокого понимания библиотеки lens
, поэтому я играю с типами, которые он предлагает. У меня уже был некоторый опыт работы с объективами, и я знаю, насколько они эффективны и удобны. Поэтому я перешел к Призмам, и я немного потерялся. Кажется, что призмы допускают две вещи:
- Определение того, принадлежит ли сущность к определенной ветки типа суммы, и, если это так, фиксирует базовые данные в кортеже или синглете.
- Уничтожение и восстановление объекта, возможно, его модификация.
Первая точка кажется полезной, но обычно не нужны все данные из объекта, а ^?
с обычными объективами позволяет получить Nothing
если поле, о котором идет речь, не принадлежит ветке, которую представляет сущность, точно так же, как и призм.
Второй момент... Я не знаю, возможно, использовал?
Итак, вопрос: что я могу сделать с Призмой, которую я не могу с другой оптикой?
Редактировать: спасибо всем за отличные ответы и ссылки для дальнейшего чтения! Хотел бы я принять их всех.