本节用到的测试代码
hello_world.hs
:
-- hello world
{-
hello world
-}
main = putStrLn "hello world"
我们依然以hello world程序为例,顺别介绍下Haskell中的注释。
编译式
执行ghc hello_world.hs
,会生成hello_world.exe
、hello_world.hi
、hello_world.o
三个文件。
脚本式
Haskell程序也可以以脚本的方式运行,方便学习和简单测试。有两个命令可以以脚本方式执行Haskell代码。
runHaskell
执行命令runHaskell hello_world.hs
,输出结果。
runghc
执行命令runghc hello_world.hs
,输出结果。
交互式
输入命令:l hello_world.hs
加载文件,然后输入main
执行代码,得到结果。
在这里甚至都不用创建文件,可以直接输入代码执行。如果需要输入多行代码,以:{
开始,:}
结束。以下示例来源于官网。
ghci> :{
| g op n [] = n
| g op n (h:t) = h `op` g op n t
| :}
ghci> g (*) 1 [1..3]
6
有关ghc和ghci的详细文档见官网。
cabal
cabal是Haskell的包管理工具,也是编译管理工具。通过cabal init
命令交互式创建工程,cable run
命令运行工程。
stack
stack也是用来构建Haskell工程的工具,功能十分强大。stack new projectName
创建新工程,注意projectName不要包含下划线。stack run
构建并运行,stack build
构建工程。
有个好消息是在本文写作的时候,GHC已经更新到9.0.1
了,不过遗憾的是Haskell官网已不再提供All In One的安装包,你可以单独安装GHC和Cabal,或者参考官网的安装方式。最新版的GHC要求Cabal版本必须是2.4以上,如果你是用Vs Code作为Haskell的开发工具,还需要注意官方的Haskell插件最高只支持到8.10.4版本的GHC。更多信息及下载见GHC 官网。