有人告诉我可以解释 Haskell 文件(我假设这意味着它们将像 Ruby/Python/Perl 一样工作)。不过,我在 GHC 上找不到这样做的命令行选项。它总是想编译我的文件。我也看了一下高桥,但是它总是把我丢进一个复制品里。
我基本上只是想做 ghc -i MyFile.hs(其中-i 是一个编造的标志,我假装与解释模式相关) ,并让它执行,这样我就可以得到快速反馈,而我尝试的想法和学习。
ghc -i MyFile.hs
通过在终端中运行 ghci打开 GHC 解释器,然后加载一个类型为 :load example.hs的文件。更多细节在此 链接。
ghci
:load example.hs
$ runhaskell MyFile.hs
或者,runghc(它们是同样的东西)。ghci MyFile.hs也将启动一个加载了 MyFile.hs的交互式 REPL 会话,但是如果您想运行一个主程序,那么 runhaskell是可行的方法。
runghc
ghci MyFile.hs
MyFile.hs
runhaskell
养成在 GHCi 中将程序的某些部分作为独立单元进行测试的习惯,而不是每次都运行整个程序,这可能是一个好主意,但显然对于较短的脚本来说,仅仅运行整个程序是最简单和最容易的。
你可以有这样一个剧本:
#!/usr/bin/env runhaskell main = putStrLn "hello world"
在使文件成为可执行文件(即 chmod +x haskell_script)之后,您可以像运行其他 shell 脚本一样运行它。
chmod +x haskell_script
要运行在文件中编写的代码,比如说 myfile.txt,它包含在 GHC 解释器中工作的简单代码行,比如:
myfile.txt
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。
GHCi
:script myfile.txt