首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >haskell leksah你好-世界

haskell leksah你好-世界
EN

Stack Overflow用户
提问于 2011-01-12 10:13:04
回答 3查看 3.3K关注 0票数 8

坏消息是,今天早上,我愿意尝试使用Leksah (顺便说一下,漂亮的应用程序)继续学习haskell。

我无法编译"Hello“示例,我发现它正在阅读leksah教程

代码语言:javascript
复制
module Main (
main = putStrLn "Hello World"     
) where

compilation-error: src\Main.hs:16:5: parse error on input=‘’

代码语言:javascript
复制
module Main (
) where
main = putStrLn "Hello World"

compilation-error: src\Main.hs:1:0: The main functionmain‘不是由模块Main'导出的

你有什么建议我试试别的吗?

重要编辑Now leksah附带了一个文件Main.hs,该文件在您第一次启动Leksah时直接加载,其中包含一个功能齐全的Hello项目。它也有最低限度的单元测试计数器部分。很适合初学者 :-)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-12 10:27:03

模块名称后面的偏序中的文本是导出列表。这意味着,您必须将所有函数放在您想要导出的程序中。但除此之外,你还必须在某个地方定义你的主要功能。试试这个:

代码语言:javascript
复制
module Main (
  main
) where
main = putStrLn "Hello World"

PS:你也可以移除偏执狂和里面的任何东西,比模块中的任何东西都要被导出。

票数 15
EN

Stack Overflow用户

发布于 2011-01-12 10:24:56

第二个示例即将完成,只需将()Main旁边删除即可。这是您的模块的导出列表,您已经将其设置为空(括号之间没有任何内容)。因此,看不到main (因为它没有导出)。

您还可以直接导出main:

代码语言:javascript
复制
module Main (main) where
票数 6
EN

Stack Overflow用户

发布于 2011-01-12 13:55:16

“出口所有东西是很好的做法吗?”绝对不是那么回事。您不希望像助手方法这样的实现细节泄漏到外部。另一个例子是值构造函数,因为没有办法为它们进行正常检查、默认参数等等。为了克服这一问题,您只在模块内部使用它们,并为外部提供方便和安全的初始化功能。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4667554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档