繁体   English   中英

为什么在haskell中这种不正确的缩进不是呢?

[英]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

之所以进行编译是因为那里没有要考虑的块。

压痕后,才事项whereletdocase 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM