Как структурировать приложение, написанное на функциональном языке? - PullRequest
7 голосов
/ 02 мая 2010

Как код обычно организован в приложениях FP? По каким направлениям вы разделяете файлы, модули, каталоги и т. Д.?

1 Ответ

9 голосов
/ 02 мая 2010

Как структурировать приложение, написанное на функциональном языке?

Не иначе, как в любом другом приложении:

  • Каждый модуль скрывает секрет.

  • Проектное решение, которое может измениться, должно быть заключено в модуле.

  • Модуль может экспортировать один основной тип, пару вспомогательных типов и целый набор связанных операций.

  • Сплоченность и связь модулей по-прежнему так же важны, как Юдон и Константин сказали, что они были в 1970-х годах - хотя на функциональном языке вам редко приходится беспокоиться о «последовательных» формах сплоченности и связи.

  • Многие функциональные языки требуют одного модуля на файл, но диалекты ML предлагают гораздо большую гибкость. Однако подавляющая практика состоит в том, чтобы поместить модуль и его интерфейс в отдельные файлы. Цель Caml закрепляет это соглашение в их компиляторе.

Короче говоря, по-прежнему верно, что представление - это суть программирования (Фред Брукс), и, как и в любом другом крупном приложении, ваши модули должны быть организованы так, чтобы избежать демонстрации представления безвозмездно.

Единственное, что немного отличается в функциональном языке, это то, что вы можете предоставить модуль, который инкапсулирует некоторую схему исполнения , воплощенную в функции более высокого порядка. Например, я написал модуль на основе Bubble Search ; Мой код принимает любой жадный алгоритм и автоматически преобразует его в алгоритм поиска пузырей. Но такой модуль, который полностью посвящен коду и не имеет реальной структуры данных, встречается довольно редко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...