Простой факт заключается в том, что многие OO Patterns будут считаться идиомами в функциональных языках (особенно в оригинальных шаблонах GoF). Например, шаблон Iterator (встроенный в такие языки, как C # сейчас) просто не нужен в Lisp или ML, которые имеют операторы последовательности.
Множество шаблонов, которые мы используем в ОО-системах, помогают нам избавиться от «несущественного», чтобы мы могли сосредоточиться на кодировании объектов. Другими словами, шаблоны являются решениями неинтересных частей приложения. Мы должны использовать шаблоны для решения общих задач, которые были решены ранее (например, шаблоны в шаблонах архитектуры приложений предприятия Фаулера для работы с такими вещами, как передача базы данных или шаблоны xUnit для ускорения модульного тестирования), чтобы мы могли сосредоточиться на повышении эффективности бизнеса для приложения.
Я уверен, что помимо специфики шаблонов GoF, существуют шаблоны проектирования, которые будут применимы и к функциональному программированию. Дело в том, что ОО является доминирующей парадигмой. Написание книги образцов, предназначенной для функциональных разработчиков ... откровенно говоря, не получит одобрения от издателя. Вот к чему это сводится. Рынку функциональных паттернов не хватает, чтобы иметь значительное количество книг, посвященных этой теме.