Документация функционального программирования [закрывается]

5
задан stacker 23 January 2010 в 15:36
поделиться

3 ответа

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

Кажется, что в стиле стандартной документации называется EDOC . EDOC может производить внешнюю документацию API; цитата из одного источника:

EDOC является стандартом Erlang Приложение для документирования API Erlang API непосредственно внутри кода Erlang.

Это ссыловается в раздел документации в ERLANG.ORG :

EDOC позволяет написать документацию программы ERLANG как комментарии в Сам исходный код, используя теги на форма "@name ...". Исходный файл не должен содержать теги для EDOC генерировать свою документацию, но без тегов результат будет только Содержать основные доступные информация, которая может быть извлечена из модуль.

A Фокусированный поиск Google приведет вас отсюда.

4
ответ дан 13 December 2019 в 05:35
поделиться

На функциональных языках, таких как Haskell или ML, которые имеют типы и, возможно, типы модулей (называемые «подписи» в стандартных ML), типы обеспечивают очень много документации. На функциональных языках, таких как схема, которая не имеет типов, проверенных компилятором, они используют «контракты», за исключением случаев, когда они являются небрежными.

Эрланг был разработан в Эрикссоне, и отрасль телекоммуникации очень сильная культура и запись тестирования. Это не удивило бы меня, если документация о том, как эти функции должны работать, находится в тестовом номере где-то.

Сводка: Две ближайшие вещи к стандарту являются типы (для функциональных языков со статическими системами типа) и контракты (для функциональных языков, которые не имеют систем статического типа).

5
ответ дан 13 December 2019 в 05:35
поделиться

Это очень интересная проблема!

Есть два вопроса - первый комментирует код и запись некоторой документации (в текстовой форме). Это должно быть сделано обычным способом, как на языках ОО. Вы просто написали обзор всех модулей, функций и типов, которые вы используете в вашем проекте. В f # (функциональный язык для .NET), вы можете одновременно написать комментарии XML, как в F #, и генерировать документацию из этих комментариев. Я считаю, что F # документация на MSDN автоматически генерируется из этих комментариев. Вот пример из F # исходного кода (если вы устанавливаете F # для VS 2008, он также установит исходный код основных библиотек, которые могут быть интересным ресурсом):

/// Return the first element of the list.
///
/// Raises <c>System.ArgumentException</c> if <c>list</c> is empty
val head: list:'T list -> 'T

Второе, что вы упомянули, является UML - нет стандарта Для рисования диаграмм для функциональных языков. Это кажется сложной проблемой. Однако, безусловно, можно создать диаграмму для кода, использующей некоторые конкретные библиотеки. Многие функциональные библиотеки позволяют вам составить код, составив несколько простых функций. Обработка списка является хорошим примером:

let custNames = customers |> List.map (fun customer -> customer.Name) 
let empNames = employees |> List.map (fun employee -> employee.Name) 
let result = List.concat [custNames; empNames]

Это может быть красиво визуально представлено путем нанесения потока данных:

+-----------+    +-----+
| customers |--->| map |\
+-----------+    +-----+ \ +--------+   +--------+
                          >| concat |-->| result |
+-----------+    +-----+ / +--------+   +--------+
| employees |--->| map |/
+-----------+    +-----+

аналогичные чертежи могут быть сделаны для многих функциональных библиотек, и они, кажется, довольно полезны (это то, что вы рисуете, когда обсуждая что-то у доски). Однако, насколько я знаю, нет инструментов, чтобы сделать это автоматически (хотя это должно быть возможно IMHO).

3
ответ дан 13 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: