获取源文件以在Haskell编程中运行(WinGHCi)

时间:2014-12-25 03:43:31

标签: haskell winghci

我无法弄清楚如何让WinGHCi加载和编译我的.hs文件。

我有一个文件C:\Users\Haskell\Source\hello.hs,只包含以下行:

main = putStrLn "Hello, world!"

如果在Prelude>提示符下,我运行

:cd C:\Users\Haskell\Source\

没有任何反应,我假设这意味着命令成功。但是,当我尝试运行时

:load hello.hs

我得到一个" [1/1]编译主要。好的,加载模块:Main"信息。我的提示随后从" Prelude" to" * Main"我输入:

ghc -o hello hello.hs

在那之后,我会得到一系列错误,谈论ghc,o,hello,hello和hs是如何"不在范围内。"

我在正确的目录中。为什么我的程序没有运行?

我的一个问题是我无法浏览目录。我知道:!dir列出了文件,而且我在正确的目录中,但是:load hello.hs仍然无法正常工作,我不断收到范围错误。

任何帮助都将不胜感激。

编辑:用户指出如果我已经进入* Main提示符,那么我的程序已经加载并编译,我不需要运行ghc命令。如果是这样的话,我该怎么办呢? Haskell.org指出,"然后你可以运行可执行文件(Unix系统上的./hello,Windows上的hello.exe),"但是还没有创建exe。

1 个答案:

答案 0 :(得分:4)

我发现首先导航到目录然后调用ghci更容易。进入Prelude后,您可以使用:l和文件名。

或者,您可以加载ghci,然后使用:l并使用文件的完全限定路径。

修改 阅读完您的编辑后,很明显您的代码编译得很好。一旦它说它已经编译,就没有理由再次使用ghc尝试这样做(我不认为你可以在ghci内做到这一点)。

现在它已被编译,您可以使用其中定义的任何代码和数据类型。因此,要使用main函数,只需在main提示符下键入*Main>即可。