Где возможны разрывы строк в выражениях Haskell?

Фон

Большинство руководств по стилю рекомендуют поддерживать длину линии до 79 символов или меньше. В Haskell правила отступов означают, что выражения часто необходимо разбить на новые строки.

Вопросы:

В выражениях, где законно помещать новую строку?

Является ли это документированным где-нибудь?


Расширенный вопрос: Я вижу, что GHC форматирует мой код, когда он сообщает об ошибке, поэтому кто-то выяснил, как автоматизировать процесс разрыва длинных строк. Есть ли утилита, в которую я могу поместить код Хэкелла, и чтобы он плюнул на этот код, который хорошо отформатирован?

Ответ 1

Вы можете поместить новую строку в любом месте между лексическими токенами выражения. Однако существуют ограничения на то, сколько отступов может следовать за новой строкой. Легкое эмпирическое правило состоит в том, чтобы отложить следующую строку, чтобы начать справа от строки, содержащей выражение. Помимо этого, некоторые вещи стиля:

  • Если вы вставляете выражение, которое появляется в определении name = expression, это хороший стиль для отступа справа от знака =.

  • Если вы отступаете от выражения, которое появляется в правой части привязки do или понимания списка, это хороший стиль для отступа справа от знака <-.

Официальная документация, вероятно, Haskell 98 Report (Глава 2 по лексической структуре), но лично я не считаю этот материал очень легким для чтения.