如何在解释模式下运行 Haskell 文件

有人告诉我可以解释 Haskell 文件(我假设这意味着它们将像 Ruby/Python/Perl 一样工作)。不过,我在 GHC 上找不到这样做的命令行选项。它总是想编译我的文件。我也看了一下高桥,但是它总是把我丢进一个复制品里。

我基本上只是想做 ghc -i MyFile.hs(其中-i 是一个编造的标志,我假装与解释模式相关) ,并让它执行,这样我就可以得到快速反馈,而我尝试的想法和学习。

42631 次浏览

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

$ runhaskell MyFile.hs

或者,runghc(它们是同样的东西)。ghci MyFile.hs也将启动一个加载了 MyFile.hs的交互式 REPL 会话,但是如果您想运行一个主程序,那么 runhaskell是可行的方法。

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

你可以有这样一个剧本:

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

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

要运行在文件中编写的代码,比如说 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