Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell Hello world,eclipse IDE_Eclipse_Haskell - Fatal编程技术网

Haskell Hello world,eclipse IDE

Haskell Hello world,eclipse IDE,eclipse,haskell,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

我很难用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> 

我犯了什么错误?

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

我已经多年没有使用EclipseFP了,请记住这一点

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

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


然而,您可能想做的是将EclipseFP设置为在运行时执行您的程序,我不记得如何执行,可能是在运行菜单中的某个地方。

从我对EclipseFP的了解来看,它只是GHCi的一个接口。这就意味着,就我而言,没有理由使用它,因为你有所有的坏Eclipse膨胀,对内存的无限渴望,对镇静剂速度的乌龟,绝对没有一个好的索引,调试器,管理你的工具堆栈

你犯了什么错误?您使用了Eclipse。没关系,很容易犯错误。如果您正在学习Scala,Eclipse可能是一个不错的选择。但是对于Haskell,最好从命令行运行GHCi,并使用记事本++之类的编辑器,该编辑器具有良好的语法高亮显示功能。这一次,命令行/编辑器组合更可取,不是因为它有男子气概,而是因为它更有用

如果你一定要有一个IDE,现在选择的很少,但我发现了以下几点

当然,在答案中找到的任何


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

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

在项目浏览器中,单击您的项目,然后单击鼠标右键,然后选择run As>run Configuration>run As Haskell应用程序。

我认为没有colonTyping main的main将只调用会有用的。但是,键入:main允许您传递可以用getArgs读取的参数,这对于命令行程序非常有用。请检查如何在启动时自动运行应用程序。-1:您没有回答这个问题。不管有没有Eclipse,解决方案都是一样的,正如其他答案所描述的那样。@Jørgen:嗯,OP似乎很欣赏我的答案,所以我对你的Kibbitz持保留态度。但我不认为质疑一个插件的实用性有什么不妥,当它被要求运行一个可执行文件时,它甚至不能运行。Eclipse在这里是一个非常重要的问题,只是在EclipseFP中尝试了这个。如果我要求将其作为Haskell程序运行,它将运行并打印字符串。如果我作为ghci运行它,它将加载到ghci中。它做了预期的事情。问题是在ghci中运行,而不是在eclipse中运行。如果EclipseFP在过去两年中没有改善,我会非常惊讶。当我使用它时,它所做的只是打开GHCi。