[英]why isn't this incorrect indentation in haskell?
为什么第5行不包含缩进错误。 我希望在编译时遇到解析错误。 我预计第5行的+
必须在第4行的*
下对齐。
module Learn where
x = 10
* 5
+ y -- why isn't this incorrect indentation
myResult = x * 5
y = 10
之所以进行编译是因为那里没有要考虑的块。
压痕后,才事项where
, let
, do
, case of
。 这些关键字开始一个事物的块,并且重要的是要了解一行是继续上一个条目,开始一个新条目还是结束该块。
case f 5 of
A -> foo
32 -- continues the previous entry
B -> 12 -- starts a new entry
+ bar 43 -- ends the case
在=
之后,我们不需要将一个块分成多个条目:只有一个表达式。 因此,没有缩进规则适用。
这是因为编译的定义, x
是所有的开头的右x
。 只要每行从x
的右边缩进,在每行的开头都不重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.