haskell で作業して、奇妙な動作を見つけ、それを必要最低限の骨まで取り除きました
この作品
a :: Bool
a = case True of
True -> True
False -> False
でもやってみると
b :: IO Bool
b = do
let b' = case True of
True -> True
False -> False
return b'
私は得る
ghci>:l test.hs
[1 of 1] Compiling Main ( test.hs, interpreted )
test.hs:16:14: parse error on input ‘->’
Failed, modules loaded: none.
だから私は試します
c :: IO Bool
c = do
let c' = case True of
True -> True
False -> False
return c'
そして、これは機能します。
何?なんで?この場合、なぜ追加のインデントが必要なのですか? おそらく、これらのキーワードは非常に短く、日常の言葉で一般的であるため、これについては何も見つかりません。この動作を説明する仕様はありますか?