getArgs如何工作,我试图从终端读取文本文件,然后将内容发送到我定义的函数之一。有人可以发布示例代码,让我了解它是如何工作的。感谢。
答案 0 :(得分:9)
getArgs
是IO
操作,会生成String
fmap someFunction $ readFile =<< fmap head getArgs
或在申请方式中:
someFunction <$> readFile =<< head <$> getArgs
答案 1 :(得分:2)
getArgs
为您提供了一个命令行参数列表(不,包括C程序员调用的argv[0]
,正在运行的二进制文件的名称)。例如,如果您将应用程序编译为foo
,然后在命令行上执行foo a b c
,那么getArgs
将返回["a", "b", "c"]
。
根据您的问题,我不确定您是否期望在命令行上使用文件名,或者您是否希望管道中的数据标准输入。
如果您正在使用文件名,只需从getArgs
获取结果并将结果传递给openFile
(或者readFile
,具体取决于您的目标)。
如果你正在试图做管道,你可能会看interact
,这可能会做你想要的。