坏消息是,今天早上,我愿意尝试使用Leksah (顺便说一下,漂亮的应用程序)继续学习haskell。
我无法编译"Hello“示例,我发现它正在阅读leksah教程。
module Main (
main = putStrLn "Hello World"
) wherecompilation-error: src\Main.hs:16:5: parse error on input=‘’
和
module Main (
) where
main = putStrLn "Hello World"compilation-error: src\Main.hs:1:0: The main functionmain‘不是由模块Main'导出的
你有什么建议我试试别的吗?
重要编辑:Now leksah附带了一个文件Main.hs,该文件在您第一次启动Leksah时直接加载,其中包含一个功能齐全的Hello项目。它也有最低限度的单元测试计数器部分。很适合初学者 :-)
发布于 2011-01-12 10:27:03
模块名称后面的偏序中的文本是导出列表。这意味着,您必须将所有函数放在您想要导出的程序中。但除此之外,你还必须在某个地方定义你的主要功能。试试这个:
module Main (
main
) where
main = putStrLn "Hello World"PS:你也可以移除偏执狂和里面的任何东西,比模块中的任何东西都要被导出。
发布于 2011-01-12 10:24:56
第二个示例即将完成,只需将()从Main旁边删除即可。这是您的模块的导出列表,您已经将其设置为空(括号之间没有任何内容)。因此,看不到main (因为它没有导出)。
您还可以直接导出main:
module Main (main) where发布于 2011-01-12 13:55:16
“出口所有东西是很好的做法吗?”绝对不是那么回事。您不希望像助手方法这样的实现细节泄漏到外部。另一个例子是值构造函数,因为没有办法为它们进行正常检查、默认参数等等。为了克服这一问题,您只在模块内部使用它们,并为外部提供方便和安全的初始化功能。
https://stackoverflow.com/questions/4667554
复制相似问题