Haskell表达式中允许换行的位置在哪里?

Joh*_*ler 12 haskell coding-style

背景

大多数样式指南建议将行长度保持在79个字符或更少.在Haskell中,缩进规则意味着表达式经常需要用新行分解.

问题:

在表达式中,放置新行在哪里合法?

这是在某处记录的吗?


扩展问题:我看到GHC在报告错误时格式化我的代码,所以有人已经想出如何自动化打破长线的过程.是否有一个实用程序,我可以将haskell代码放入并让它吐出格式良好的代码?

Nor*_*sey 5

您可以在表达式的词法标记之间的任何位置放置换行符.但是,对换行符可能有多少缩进有限制.简单的经验法则是将下一行缩进以从包含表达式的行的右侧开始.除此之外,还有一些风格:

  • 如果要缩进定义中出现的表达式,则缩进符号name = expression右侧是一种很好的方式=.

  • 如果要缩进显示在do绑定或列表理解的右侧的表达式,则缩进<-符号右侧是一种很好的方式.

权威文档可能是Haskell 98报告(关于词汇结构的第2章),但我个人并不觉得这些材料很容易阅读.