这是我的基本程序,但是它显示模块'Main'中未定义函数'main',我该如何解决?
以下是我的程序:
main = do
-- variable
a <- getLine
putStrLn a
这是我的基本程序,但是它显示模块'Main'中未定义函数'main',我该如何解决?
以下是我的程序:
main = do
-- variable
a <- getLine
putStrLn a
您的代码缺少缩进,Haskell使用缩进来确定块的结束。
main = do
a <- getLine
putStrLn a
-XNoNondecreasingIndentation
或-XHaskell2010
来使它在do块中的缩进方面符合标准。) - Daniel Fischermain
的定义。main::IO ()
。module Main where
的操作。--
或{-
另一种注释语法-}
注释掉了mainmain
错误 main
四个空格以使其在问题中格式化为代码。无论如何,编译器没有给出与缩进错误一致的错误消息。
a <- getLine
和putStrLn a
缩进相同的距离。 - Daniel FischerNondecreasingIndentation
(自 GHC 7.2 起称为该名称),这是一种已知的、有意为之的与标准不同之处(与其他一些不同之处不同,我不喜欢它),我刚刚发现。使用-XHaskell2010
或-XNoNondecreasingIndentation
[ghc >= 7.2] 将会导致解析错误。 - Daniel Fischer