2015-06-12 19 views
10

背景Haskell表达式允许换行符在哪里?

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

问题:

中的表达式,它在哪里的法律来放置新行?

是否记录在某处?


扩展问题:我看到GHC格式化我的代码时,所以有人想出如何自动打破长行的过程报告错误。是否有一个实用工具,我可以把haskell代码放进去,让它把代码转换成很好的格式?

+0

看看这个软件包https://hackage.haskell.org/package/haskell-formatter – Arnon

+4

谷歌搜索格式应该给你几个有用的结果。在haskell中,除了缩进规则(代码至少和它所属的块一样缩进,简化)之外,空白(包括换行符)被忽略。 – Cubic

回答

5

您可以在表达式的词汇标记之间的任何位置放置换行符。但是,对于换行符后面可能会有多少缩进存在限制。简单的经验法则是将下一行缩进到包含表达式的行的右侧。除此之外,一些风格的东西:

  • 如果您缩进出现在定义name = expression的表达,这是很好的风格缩进到=标志的权利。

  • 如果您缩进上的do结合或列表理解的右侧会出现一个表达,这是很好的风格缩进到<-标志的权利。

的权威文件可能是Haskell 98 Report是(Chapter 2词法结构),但我个人不觉得这材料很容易阅读。