今天早上的坏消息,我愿意尝试使用Leksah(顺便说一句漂亮的应用程序)继续学习haskell.
我无法编译我发现阅读leksah教程的"Hello World"示例.
module Main (
main = putStrLn "Hello World"
) where
Run Code Online (Sandbox Code Playgroud)
compilation-error: src\Main.hs:16:5: parse error on input='`
和
module Main (
) where
main = putStrLn "Hello World"
Run Code Online (Sandbox Code Playgroud)
compilation-error: src\Main.hs:1:0: The main functionmain'不是由模块导出的 Main'
你会建议我尝试别的什么?
重要编辑:现在Leksah附带了一个文件Main.hs,在你第一次启动leksah时直接加载,包含一个完全功能的Hello World迷你项目.它还有极简单元测试计数器部分.非常适合初学者 :-)
fuz*_*fuz 15
模块名称后面的paranthesis中的文本是导出列表.这意味着,您必须将所有函数放在要导出的程序中.但除此之外,您还必须在某处定义主要功能.试试这个:
module Main (
main
) where
main = putStrLn "Hello World"
Run Code Online (Sandbox Code Playgroud)
PS:您还可以删除其中的paranthesis及其他任何内容,而不是要导出模块中的任何内容.
你的第二个例子就在那里,只需()从旁边移除它Main.这是您的模块的导出列表,您已将其设为空(括号之间没有任何内容).因此,main没有看到(因为它没有被导出).
你也可以只导出main:
module Main (main) where
Run Code Online (Sandbox Code Playgroud)
"出口一切都是好的做法吗?" 当然不.您不希望辅助方法之类的实现细节泄露到外部.另一个例子是值构造函数,因为没有办法为它们进行健全性检查,默认参数等.为了解决这个问题,您只能在模块内部使用它们,并为外部提供方便和安全的初始化功能.
| 归档时间: |
|
| 查看次数: |
3224 次 |
| 最近记录: |