从标准输入哈斯克尔阅读文件

我需要编写检索命令行参数的文件一个Haskell程序,并逐行读取该文件一行。 我不知道如何解决这个,我必须得到命令行参数作为一个字符串,并解析成中openFile什么? 我是很新的Haskell的,所以我很失落,任何帮助,将不胜感激!

--------------解决方案-------------

是的,如果一个人想一个特定的文件作为参数,然后便要得到的参数和发送到中openFile。

System.Environment.getArgs返回参数作为一个列表。 因此,考虑test_getArgs.hs

import System.Environment (getArgs)

main = do
args <- getArgs
print args

然后,

$ ghc test_getArgs.hs -o test_getArgs
$ ./test_getArgs
[]
$ ./test_getArgs arg1 arg2 "arg with space"
["arg1","arg2","arg with space"]

所以,如果你想读一个单一的文件:

import System.Environment (getArgs)
import System.IO (openFile, ReadMode, hGetContents)

main = do
args <- getArgs
file <- openFile (head args) ReadMode
text <- hGetContents file
-- do stuff with `text`

(注:该代码有没有错误恢复:做什么,如果没有参数,所以args是空的( head ?会失败)如果该文件不存在/不可读)

首先,使用getArgs得到命令行参数。 我想第一个是最有趣的给你。 然后,使用openFile函数打开该文件。 最后,使用hGetLine从打开的文件读取线逐线。

分类:哈斯克尔 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.407 (s). 10 q(s)