Как вы идентифицируете монадические шаблоны проектирования?

Мой способ изучения Haskell Я начинаю понимать концепцию монад и начинаю использовать известные монады в своем коде, но у меня все еще возникают трудности с подходом к монадам с точки зрения дизайнера. В объектно-ориентированном стиле есть несколько правил, таких как «определять существительные» для объектов, следить за каким-то состоянием и интерфейсом ... но я не могу найти эквивалентные ресурсы для монад.

Итак, как вы определяете проблему как монадическую по своей природе? Какие шаблоны проектирования хороши для монадического дизайна? Каков ваш подход, когда вы понимаете, что какой-то код лучше реорганизовать в монаду?

41
задан Martin Geisler 8 January 2012 в 14:10
поделиться