我正在阅读“让你学习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操作中?是否可以继续,但忽略涉及编译程序的部分?
答案 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来学习其他命令