我不知道如何让WinGHCi加载和编译我的.hs
文件。
我有一个名为C:\Users\Haskell\Source\hello.hs
的文件,它只包含以下一行:
main = putStrLn "Hello, world!"
如果在Prelude>
提示符下运行
:cd C:\Users\Haskell\Source\
什么都没有发生,我认为这意味着命令成功了。但是,当我试图跑
:load hello.hs
我得到了一条"1 /1编译主。好,模块加载:主“消息。然后,我的提示符从“前奏”改为"*Main“,我输入:
ghc -o hello hello.hs
在此之后,我将看到一系列错误,讨论ghc、o、hello、hello和hs是如何“不在范围内”的。
我在正确的目录中。为什么我的程序不能运行?
我的问题之一是我无法导航目录。我知道:!dir
列出了文件,我在正确的目录中,但是:load hello.hs
仍然不能工作,而且我一直收到范围错误。
任何帮助都将不胜感激。
编辑:一个用户指出,如果我已经到达*主提示符,那么我的程序已经加载和编译,我不需要运行ghc命令。如果是这样的话,我该怎么做呢?Haskell.org声明,“然后您可以在Unix系统上运行可执行文件(./hello,在hello.exe上运行)”,但是还没有创建一个exe。
发布于 2014-12-25 03:51:33
我发现首先导航到目录,然后调用ghci
更容易。一旦进入前奏,您就可以使用:l
和文件名了。
或者,您可以加载ghci
,然后使用:l
并使用文件的完全限定路径。
编辑:在阅读了您的编辑之后,很明显您的代码编译得很好。一旦它说它已经编译了,就没有理由再用ghc
来尝试了(我不认为您可以在ghci
中这样做)。
现在已经编译好了,您可以使用其中定义的任何代码和数据类型。因此,要使用主函数,只需在main
提示符处输入*Main>
。
https://stackoverflow.com/questions/27644049
复制相似问题