这是我的基本程序,但它指出功能'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
以上是代码的正确缩进形式;您可能应该阅读这里的文章,它比我解释得更好。
此错误消息仅意味着编译器没有找到您的函数的定义main
。
要运行您编译的程序,而不是在 ghci 中与它交互(我建议您作为初学者这样做),您需要main::IO ()
.
如果您不给模块命名,它会自动执行相当于module Main where
在文件顶部插入的操作。
我想不出任何方法来产生这个错误,除了
--
或{-
其他注释语法注释掉 main-}
main
错误(
虽然您的问题似乎显示不正确的缩进,但这是因为该站点不将制表符视为 8 个字符宽。我怀疑您缩进了main
四个空格以使其在您的问题中格式化为代码。无论如何编译器都没有给出与缩进错误一致的错误信息。
我想建议您使用空格而不是制表符来进行缩进,因为必须调试程序的空格总是很烦人。
大多数编辑器都可以配置为将 Tab 键按下转换为适当数量的空格,从而为您提供相同的 line-it-up 功能,而不会出现字符数差异。
)