Ооооо ...
Полугруппы, Моноиды, Монады, Функторы, Линзы, Катаморфизмы, Анаморфизмы, Стрелки ... Все это звучит хорошо, и после одного или двух (или десяти) упражнений вы может понять их суть. А с Scalaz
вы получаете их бесплатно ...
Однако, с точки зрения программирования в реальном мире, я изо всех сил пытаюсь найти применение этим понятиям. Да, конечно, я всегда нахожу в сети кого-нибудь, кто использует Monads for IO или Lenses в Scala, но ... все же ...
Я пытаюсь найти что-то вроде "предписывающих" линий шаблона. Что-то вроде: «здесь вы пытаетесь решить это , и один хороший способ решить эту проблему - использовать линзы таким образом !»
Предложения?
Обновить: Что-нибудь в этом роде, с книгой или двумя, было бы здорово (спасибо, Пол): Примеры шаблонов проектирования GoF в основных библиотеках Java