有人告诉我您可以解释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
在需要传递命令行参数时使用)来运行顶级操作。