5行目にインデントエラーが含まれていないのはなぜですか?コンパイル時に解析エラーが発生することが予想されました。私は、5行目+
が考慮すべきそこにはブロックがありませんので、それはコンパイル4.なぜこの誤ったインデントがhaskellではありませんか?
module Learn where
x = 10
* 5
+ y -- why isn't this incorrect indentation
myResult = x * 5
y = 10
5行目にインデントエラーが含まれていないのはなぜですか?コンパイル時に解析エラーが発生することが予想されました。私は、5行目+
が考慮すべきそこにはブロックがありませんので、それはコンパイル4.なぜこの誤ったインデントがhaskellではありませんか?
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
=
後、私たちは、エントリにブロックを分割する必要はありません。唯一つの式があります。したがって、indentation rulesは適用されません。
x
の定義がすべてx
の先頭にあるため、これがコンパイルされます。 x
の右側にインデントされている限り、各行の開始位置は重要ではありません。