有人告诉我您可以解释Haskell文件(我认为这意味着它们将像Ruby / Python / Perl一样工作)。但是,我找不到GHC上的命令行选项。它总是想编译我的文件。也看了GHCi,但它总是使我陷入混乱。
我基本上只是想做ghc -i MyFile.hs(其中-i是我假装与解释模式相关的虚假标志)并执行它,以便在尝试想法和学习时可以快速获得反馈。
Answers:
$ runhaskell MyFile.hs
或者,runghc(它们是同一件事)。ghci MyFile.hs也将在MyFile.hs加载时启动交互式REPL会话,但是如果您要运行主程序,则runhaskell是一种方法。
养成在GHCi中将程序的各个部分作为隔离单元进行测试的习惯是一个好主意,而不是每次都运行整个程序,但是显然,对于较短的脚本,仅运行整个程序是最简单,最容易的。
runhaskell我都没有走过,而是走了runghc。(因此请+1 runghc)
您可以具有如下脚本:
#!/usr/bin/env runhaskell
main = putStrLn "hello world"
使文件成为可执行文件(即chmod +x haskell_script)后,您可以像运行其他任何shell脚本一样运行它。
(),上一次执行的最后一个表达式的返回值(如果不是)将由输出自动输出runhaskell。使用正常编译的实际可执行文件不会发生这种情况ghc。
通过ghci在终端中运行来打开GHC解释器,然后加载键入的文件:load example.hs。在此链接中有更多详细信息。
要运行写在文件中的代码,例如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。
main通过键入main(或:main在需要传递命令行参数时使用)来运行顶级操作。