2010-05-02 2 views

ответ

9

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

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

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

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

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

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

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

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

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

+0

Повторное использование в отличие от ООП происходит на уровне вычисления (функции), а не на уровне компонента (объекта). –

Смежные вопросы