3

getArgs 是如何工作的,我试图从终端读取文本文件,然后将内容发送到我定义的函数之一。有人可以发布一个示例代码,让我了解它是如何工作的。谢谢。

4

2 回答 2

11

getArgs是一个IO动作,它产生一个列表String

fmap someFunction $ readFile =<< fmap head getArgs

或应用风格:

someFunction <$> readFile =<< head <$> getArgs
于 2013-02-19T02:35:26.580 回答
4

getArgs为您提供命令行参数列表(包括 C 程序员调用argv[0]的内容、正在运行的二进制文件的名称)。因此,例如,如果您将应用程序编译为foo然后foo a b c在命令行上执行,那么getArgs将返回["a", "b", "c"].

根据您的问题,我不确定您是否希望在命令行上有一个文件名,或者您是否希望在标准输入中输入数据

如果您要查找文件名,只需将结果从中获取getArgs并将其传递给openFile(或者可能readFile,取决于您所追求的内容)。

如果您尝试做管道,您可能会查看interact,这可能会做您想要的。

于 2013-02-19T20:11:08.493 回答