Декомпозиция (модульность) в функциональных языках

Есть идея: функции (в FP) могут быть составлены так же, как компоненты в ООП. Для компонентов в ООП мы используем интерфейсы. Для функций мы можем использовать делегаты. Цель состоит в том, чтобы добиться декомпозиции, модульности и взаимозаменяемости. Мы могли бы использовать внедрение зависимостей, чтобы упростить эту задачу.

Я попытался найти кое-что по теме. Не повезло. Наверное, потому что нет достаточно больших функциональных программ, чтобы в этом нуждаться? При поиске приложений корпоративного масштаба, написанных на FP, я нашел этот список. Функциональное программирование в реальном мире и в этой статье . Надеюсь, я просто пропустил убийственные приложения для FP, которые были бы достаточно большими, чтобы их можно было разложить.

Вопрос: Не могли бы вы показать достойное реальное приложение FP (желательно с открытым исходным кодом), которое использует разложение на модули?

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

9
задан Sebastian Good 19 December 2011 в 23:06
поделиться