第二个haskell程序:带命令行参数的Hello World

如果写控制台程序,经常需要跟上许多命令行参数,我的目的:
如果不带任何参数,则输出“Hello World”,如果带参数,则将参数跟在Hello的后面。
执行:hello.exe
输出:Hello World
执行:hello.exe Haskell
输出:Hello Haskell

代码如下:
import System( getArgs )
main = do
    args <- getArgs
    putStrLn (if (length args) ==0 then "Hello World" else ("Hello " ++ args !! 0))

要点:
(1) import 类似java语法,用来导入其他模块中的函数,这里的System是一个模块名(module), Haskell规定模块名必须大写字母开头,而getArgs是一个函数名。
(2) do关键字涉及到IO问题,一言难尽,正在学习中。
(3) if then else 与大多数语言类似,不过在haskell中是一个表达式
(4) args是一个List, List在haskell中非常强大,args !! 0 意思是取出第0个参数(从0开始,与C语言相似)

posted @ 2008-01-28 15:09  申龙斌的程序人生  阅读(1466)  评论(0编辑  收藏  举报