Haskell 表达式中哪里允许换行?
Where are line breaks allowed within Haskell expressions?
背景
大多数风格指南建议将行的长度控制在 79 个字符以内。在 Haskell 中,缩进规则意味着表达式经常需要换行。
问题:
在表达式中,在哪里换行是合法的?
这在某处记录了吗?
扩展问题:我看到 GHC 在报告错误时格式化了我的代码,因此有人想出了如何自动执行断开长行的过程。是否有一个实用程序可以将 haskell 代码放入其中并让它以良好的格式吐出该代码?
您可以在表达式的词汇标记之间的任意位置放置一个换行符。但是,在换行符后可以缩进多少是有限制的。简单的经验法则是将下一行缩进到包含表达式的行的右侧。除此之外,还有一些风格的东西:
如果要缩进出现在定义 name = expression
中的表达式,缩进到 =
符号右侧是一种很好的风格。
如果要缩进出现在 do
绑定或列表推导式右侧的表达式,最好在 [=13] 右侧缩进=] 符号.
权威文档可能是 Haskell 98 Report (Chapter 2 词法结构),但我个人认为 material 不是很容易阅读。
背景
大多数风格指南建议将行的长度控制在 79 个字符以内。在 Haskell 中,缩进规则意味着表达式经常需要换行。
问题:
在表达式中,在哪里换行是合法的?
这在某处记录了吗?
扩展问题:我看到 GHC 在报告错误时格式化了我的代码,因此有人想出了如何自动执行断开长行的过程。是否有一个实用程序可以将 haskell 代码放入其中并让它以良好的格式吐出该代码?
您可以在表达式的词汇标记之间的任意位置放置一个换行符。但是,在换行符后可以缩进多少是有限制的。简单的经验法则是将下一行缩进到包含表达式的行的右侧。除此之外,还有一些风格的东西:
如果要缩进出现在定义
name = expression
中的表达式,缩进到=
符号右侧是一种很好的风格。如果要缩进出现在
do
绑定或列表推导式右侧的表达式,最好在 [=13] 右侧缩进=] 符号.
权威文档可能是 Haskell 98 Report (Chapter 2 词法结构),但我个人认为 material 不是很容易阅读。