Грамотный haskell (.lhs) и HADDOCK
-
01-10-2019 - |
Вопрос
На данный момент я использую только Addock, но, увидев некоторые действительно интересные примеры (например, этот гид) грамота Haskell, я заинтересован в пробуждении его в проекте.
Вопросы, которые я получил, есть:
Что вы пишете как комментарии Addock и что вы пишете в грамотной части?
Как вы масштабируете грамотное программирование на несколько файлов? Кто-нибудь может указать мне пример, где грамотное программирование используется в упаковке с несколькими модулями? Какой у вас опыт использования грамотных программиров в больших пакетах?
Какой аромат (откидка, латекс, ...) грамотной грамотной хаскаэлл предпочтительнее?
Почему вы программируете в грамоте Haskell или простой ванили Haskell? Вы программируете в обеих стилях, так и, если так?
Вы предпочитаете стиль блока (
\begin{code}
) или стиль птицы (>
)? Почему?
Решение
Я писал много грамотные программы.
Что вы пишете как комментарии Addock и что вы пишете в грамотной части?
То Внешняя документация API идет в комментарии в Хаддок. Все остальное входит в грамотную часть. «Все остальное» может включать в себя:
- Внутренние инварианты структур данных
- Почему Вы делаете вещи таким образом
- Что за дизайн кода
- Почему этот дизайн был выбран, какие другие дизайны были опробованы и нашли желание
Как вы масштабируете грамотное программирование на несколько файлов?
Точно так же, как вы масштабируете большой латексный документ для нескольких файлов: один файл на модуль, затем гигантский файл, который \include
с ними все.
Кто-нибудь может указать мне пример, где грамотное программирование используется в упаковке с несколькими модулями?
Это не Haskell, но Быстрый C-- компилятор является большой функциональной программой, которая написана с использованием грамотных программирования.
Какой у вас опыт использования грамотных программиров в больших пакетах?
Грамотное программирование очень хорошо работает для документирования сложных, сложных или сложных модулей. Для большинства простых модулей внешняя документация API (например, HADDOCK) достаточно. И никакой грамотной программы действительно собирается дать вам большую картину дизайна, которая содержит более десятки модулей. Для этого вам нужны другие инструменты и методы.
Какой аромат (откидка, латекс, ...) грамотной грамотной хаскаэлл предпочтительнее?
Если вы делаете такие основные вложения, я определенно пошел с LaTex только из-за математической способности, а также в целом большей мощности инструмента.
Почему вы программируете в грамоте Haskell или простой ванили Haskell? Вы программируете в обеих стилях, так и, если так?
Мои коды Haskell почти всегда все обычные ваниль, по двум причинам:
Я работаю со старшими людьми, у которых есть больше опыта Haskell, и они заброшены грамотным хаскеллом. Только самые старые модули в их системе имеют какую-либо шанс быть .lhs.
Для Haskell грамотное программирование - это вид лишних. Одной из больших преимуществ инструмента по грамотным программированию является то, что вы освобождены от любых ограничений, которые можно наказать на определение компилятора или языка, в котором появляется ваш код. Но Haskell почти нет таких ограничений: нет определения перед использованием, а для типичного определения функции у меня есть выбор
let
-Винда илиwhere
-Видящие вспомогательные имена (или оба). Грамотное программирование Был никогда не только о модных комментариях, а также с «грамотным» Haskell, это все, что вы получаете. Это не стоит беспокоиться.
Предпочитаете ли вы стиль блока ( begin {код}) или стиль птицы (>)? Почему?
Я настоятельно предпочитаю блок стиль:
Это примерно совместим с каждым другим грамотно-программированием на планете. (Следы птиц уникальны для Haskell.)
Мой редактор лучше справляется с блочным стилем.
Другие советы
Если вы намереваетесь обмениваться программами в Интернете, я нашел комбинацию грамотных Haskell в стиле Markdown с MathJax, чтобы стать отличной комбинацией. Программа «PANDOC» серьезно великолепна для принятия этой «Markdown + LHS» в любой формат, который вы хотите, включая PDF или HTML. Если вы скажете Pandoc выводить в HTML, вы можете использовать -Mathjax (или другие подобные флаги, если вы предпочитаете) иметь формул Matheuls латекса.
При использовании этого стиля я нахожу стиль птицы, чтобы быть предпочтительным, потому что он просто более читается для меня и, похоже, вписывается вместе со стилем уценки.
Великая вещь об использовании Pandoc с Markdown заключается в том, что вы можете добавить цитаты в ваш код, математические формулы и иметь действительно портативный формат. Вы можете построить то, что напоминает научно-исследовательский документ, но является исполняемым, а также может быть размещена в блогах / Wikis / веб-сайты.
Чтобы дать альтернативным пунктам Нормана, где он говорит, что грамотное программирование полезно для договоренности о более понятного кода, можно утверждать, что Haskell достаточно выразительно, чтобы проблемы, которые вы решаете с кодом, на самом деле интересны и могут действительно принести пользу, чтобы быть в окружении пояснительного текста Отказ Подумайте о математическом исследовательском документе. Хорошие документы в чистой математике имеют много текста, чтобы объяснить мотивацию или интерпретации более высокого уровня того, что означает математическое обозначение. Например, в бумаге о уравнениях Navier-Stokes, например, было бы супер полезно для окружения обозначения уравнений с текстом, объясняющим, как оно относится к сохранению импульса Ньютона.
Таким образом, у меня был хороший успех, и рекомендую, используя Markdown + LHS стиль, знаки доллара для встраивания Formuls Matheuls, стиль птицы и Pandoc. Я бы порекомендовал написание программ, как если бы они были исследовательскими документами и относится к самому Haskell, поскольку вы будете математическими выражениями в исследовательской документе.