2009-08-03 53 views
7

我在使用eclipseFP和Haskell时遇到了“hello world”问题。Haskell Hello world,eclipse IDE

我有下面的代码,

module Main where 
    main = putStr "Hello world!" 

,当我与

ghc.exe .\H1.hs -o hw.exe 

它工作正常,但eclipseFP下,当我运行它,我只看到在控制台下面编译窗口:

GHCi, version 6.10.4: http://www.haskell.org/ghc/ :? for help 
Loading package ghc-prim ... linking ... done. 
Loading package integer ... linking ... done. 
Loading package base ... linking ... done. 
Ok, modules loaded: Main. 
Prelude Main> 

我犯了什么错误?

回答

3

从我见过的EclipseFP的很少,它只是GHCi的接口。就我而言,就我而言,这意味着没有理由使用它,因为你得到了Eclipse的所有坏处(膨胀,对记忆的无尽渴望,对镇静剂的依赖速度),绝对没有好的(索引,调试器,工具堆栈的管理)。

那你做了什么noob错误?你使用Eclipse。没关系 - 一个容易犯的错误。如果你正在学习Scala,那么Eclipse可能就是要走的路。但是对于Haskell,你最好从命令行运行GHCi并使用像Notepad ++这样的编辑器(它具有不错的语法高亮)。有一次,命令行/编辑器组合最好不是因为它是男子气概,而是因为它更有用。

如果你绝对必须有一个IDE,现在的选择很少,但这是我找到的。

Leksah
WinGHCi

和当然,在回答任何发现this question.

我还没有使用它,但Leksah似乎是功能最丰富的IDE日期。就个人而言,我坚持使用Notepad ++和命令行。

4

从未使用eclipse,但看到的是ghci,GHCi是GHC的交互式环境。你的模块已经成功加载到ghci中,你可以在ghci中输入main来运行程序的main函数,实际上你可以用这种方式调用你的程序的任何函数。

12

我多年没有使用过EclipseFP,所以请记住。

似乎正在发生的事情是EclipseFP正在控制台中加载GHCi。 GHCi是一个交互式的Haskell shell,您可以在其中评估简单表达式。它也显然加载了你的模块Main,所以你可以使用GHCi来调用模块中的函数。

如果您在控制台中键入:main,它将运行程序并打印“Hello world!”,您还可以调用您在程序中定义的其他函数或标准Haskell函数。

但是,您可能想要做的是设置EclipseFP在运行时执行您的程序,但我不记得如何做到这一点,可能在“运行”菜单中的某处。

+3

我认为这是没有冒号的“主” – yairchu 2009-08-03 06:48:37

+12

输入`main`只会调用主函数(这将起作用)。然而,输入`:main`可以让你传递可以用`getArgs`读取的参数,这对命令行程序通常是有用的。 – 2009-08-03 07:10:51

4

在eclipse运行菜单中,选择运行配置。在“自动化”选项卡下,在命令中输入main以在启动时运行,它将按照您的期望执行操作。

6

在项目资源管理器中单击您的项目,然后单击鼠标右键并选择Run As > Run Configurations > Run As Haskell Application