Вибачте, я не знаю статей чи книг, які детально висвітлюють різні звички для всіх цих конструкцій, але я можу надати вам декілька посилань на окремі ресурси.
Досить поширеною схемою є побудова монад-трансформаторів замість простих монад (див. Також посилання в наступному параграфі). Це в основному означає, що ви будуєте щось, що повинно поєднуватися з іншими монадами, внаслідок чого виходить більш складний, здатний обробляти особливості обох.
У реальному світі Haskell є кілька глав про монадах. У Розділі 14. Монади автори пояснюють основи та деякі загальні звичаї (можливо, перелік, стан). Глава 15. Програмування за допомогою монад дає більше пояснень щодо їх ефективного використання (воно охоплює також монаду читача). Наступний розділ пояснює, як користуватися Парсеком , але може бути цікавіше шукати статті, що висвітлюють, як це насправді працює: це має бути справді хорошим прикладом добре організованого використання монад для розбору. Фіанлі, глава 18. Трансформатори Монадипредставляє, як працюють монадні трансформатори, а потім показує, як побудувати їх крок за кроком. Цікавими є також міркування щодо заключних розділів глави.
Я прочитав одного разу дійсно цікаве запитання на SO про творчі способи використання монад . Запропоновані посилання були чудовими читаннями по темі. З цим духом я намагався попросити те саме про стрілки : я, безумовно, отримав менше відповідей, ніж той, що стосується монад, але цікавих, проте.
Що стосується моделей OOP групи з чотирьох, є приємний набір 3-х статей IBM про цю тему в їхній серії Функціональне мислення . Цільовою функціональною мовою є Scala. Вони продовжують, пояснюючи звичні шаблони дизайну в OOP та показують, як вони відображають у Scala.
- Функціональне мислення: Функціональні схеми дизайну, Частина 1 . Тут вони охоплюють фабрики, шаблонні методи, стратегію, легку вагу. Суть полягає в тому, що, маючи функції як значення першого класу, все набагато простіше.
- Функціональне мислення: Функціональні схеми дизайну, Частина 2 . Йдеться про java та groovy . Він стосується схеми адаптера.
- Функціональне мислення: Функціональні схеми дизайну, Частина 3 . Тут вони говорять про схему перекладача. Знову ж таки цільова мова - рихла.
Найбільш відповідна стаття у вашому питанні, безумовно, перша, але інші дві можуть бути цікавими пов'язаними читаннями.