Haskell - 「「do」構造の最後の声明は式でなければなりません」
質問
タイトルで述べているように:何がしますか The last statement in a 'do' construct must be an expression
平均?私は私の終わりを終えました do
でブロックします putStrLn
私が見たいくつかの例でそれが示すように、私はエラーがあります。
コード:
main = do args <- getArgs
file <-readFile "TWL06.txt"
putStrLn results
解決
ほとんどの場合、それはあなたのコードが誤って調整されており、コンパイラがあなたの「do」ブロックが早期に終了したと想定しているためです(または実際に属さない追加のコードがある)
他のヒント
あなたの最後の行はそうではありません someVar <- putStrLn "hello"
, 、たまたまそうですか?最後の行で変数バインディングを実行しようとすると、そのエラーが発生します。 putStrLn "Hello" >>= \someVar ->
- 最後に表現があると予想しています。
誤ったインデンテーションは、このエラーにつながる可能性があります。また、タブのみを使用しないのは良いことです。
所属していません StackOverflow