在Windows中编译Haskell程序:是否可以不下载像Cygwin这样的东西?

时间:2018-03-29 11:21:00

标签: haskell cygwin

我正在阅读“让你学习Haskell的好处”,并且已经达到了关于I / O操作的章节。我正在使用Windows,并已下载GHCi和WinGHCi。

我正在尝试编译一个简单的程序,并在emacs上保存了一个文件helloworld.hs,其中包含main = putStrLn "hello, world"

这本书说

  

打开终端,导航到helloworld.hs所在的目录,然后输入以下内容:

$ ghc --make helloworld

但是,如果我在GHCi和WinGHCi上输入$ ghc --make helloworld,我会收到如下所示的错误,可能是因为我需要在其他地方输入$ ghc --make helloworld

<interactive>:7:1: error:
    parse error on input ‘$’
    Perhaps you intended to use TemplateHaskell

事实上,在本书的在线版(此处:http://learnyouahaskell.com/input-and-output)中,作者评论说:

  

出于本章的目的,我将假设您正在使用unix-y环境来学习Haskell。如果您在Windows中,我建议您下载Cygwin,这是一个类似Linux的Windows环境,A.K​​.A。正是你需要的。

问题1 :为了能够通过输入{{1}来编译程序,我是否有必要下载Cygwin或其他类似的东西}?

我问这个,因为如果有其他方法来编译程序,那么知道是非常有用的,因为我在大学的计算机上并且无法在未经许可的情况下下载像Cygwin这样的东西。 (根据Cygwin的要求,即使获得许可也可能无法实现)

问题2 :鉴于我的大学的技术人员都没有去过复活节,只有他们可以在这台电脑上下载东西,我怎么能继续这一章在I / O操作中?是否可以继续,但忽略涉及编译程序的部分?

2 个答案:

答案 0 :(得分:4)

在许多Unix和Linux shell中(至少在我最熟悉的Bash中),默认提示为$。这就是shell显示的内容。

在Windows上,当您打开命令提示符时,您通常会看到类似的内容:

C:\Users\mark>

(这是我的提示。)

虽然说明通常包含$提示符,以表明代码是您希望在命令提示符下输入的内容,但您不应该键入$。只需输入ghc --make helloworld,然后按 Enter

此外,您不希望在GHCi中执行此操作,而是从命令行执行此操作。 ghc是一个命令行可执行文件(.exe),就像例如git。它必须在您的path中,否则,您每次要运行它时都必须输入可执行文件的完整路径。

答案 1 :(得分:1)

您已下载ghc i ,这是解释程序。根据我的观点,完全可以用它来学习(它也可以:load来源),但是你需要运行一些其他命令。我不知道你的安装是否包含编译器,我不会假设它。

顺便说一下,您在解释器中输入了命令,错误消息是特定于

ps:与解释器中的“ghc --make”相同,运行:

:load <file>

是的,它会自动递归到依赖项。您可以使用:help来学习其他命令