Haskell Hello world,eclipse IDE

时间:2009-08-03 04:10:23

标签: eclipse haskell

我无法通过eclipseFP和Haskell获得“hello world”。

我有以下代码,

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> 

我犯了什么错误?

5 个答案:

答案 0 :(得分:12)

我多年没有使用过EclipseFP,所以记住这一点。

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

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

但是,您可能想要做的是设置EclipseFP以在您运行时执行您的程序,我不记得该怎么做,可能在“运行”菜单中的某处。

答案 1 :(得分:6)

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

答案 2 :(得分:4)

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

答案 3 :(得分:4)

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

答案 4 :(得分:3)

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

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

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

Leksah
WinGHCi

当然,在this question.

的答案中找到了任何内容

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