80

有人告诉我你可以解释 Haskell 文件(我认为这意味着它们将像 Ruby/Python/Perl 一样工作)。不过,我在 GHC 上找不到执行此操作的命令行选项。它总是想编译我的文件。也看了一下 GHCi,但它总是让我陷入 repl。

我基本上只想做ghc -i MyFile.hs(其中 -i 是一个虚构的标志,我假装与解释模式相关)并让它执行,以便在我尝试想法和学习时获得快速反馈。

4

4 回答 4

134
$ runhaskell MyFile.hs

或者,runghc(它们是同一件事)。ghci MyFile.hs还将启动一个已MyFile.hs加载的交互式 REPL 会话,但如果你想运行一个主程序,那么runhaskell就是要走的路。

养成在 GHCi 中将程序的各个部分作为独立单元进行测试而不是每次都运行整个程序的习惯可能是一个好主意,但显然对于较短的脚本来说,运行整个程序是最简单和最容易的。

于 2011-12-30T05:11:05.620 回答
41

你可以有这样的脚本:

#!/usr/bin/env runhaskell
main = putStrLn "hello world"

在使文件可执行(即chmod +x haskell_script)之后,您可以像运行任何其他 shell 脚本一样运行它。

于 2011-12-30T05:15:31.967 回答
11

通过在终端中运行打开 GHC 解释器ghci,然后加载文件类型:load example.hs. 此链接中的更多详细信息。

于 2011-12-30T05:09:11.190 回答
1

要运行编写在文件中的代码,例如myfile.txt,包含在 GHC 解释器中工作的简单代码行,例如:

let a = 0 in a:[1,2]
let x = [1,2] in x ++ [3,4]

你可以做:

ghc -e ':script myfile.txt'

编辑

在 Windows 上,需要双引号:

ghc -e ":script myfile.txt"

相反,也可以打开GHCi并执行:script myfile.txt.

于 2016-07-19T11:56:33.123 回答