在 haskell 中,我将如何获取并打印出执行脚本的名称?另外,因为我在这里使用一些代码列出目录内容并在控制台(GHCi)上打印出来,所以我只是从我对其他语言的了解中得到以下结果“[]”我认为这是因为它返回一个数组但是 print 无论如何都应该打印数组,不是吗?
这是在窗户上
在 haskell 中,我将如何获取并打印出执行脚本的名称?另外,因为我在这里使用一些代码列出目录内容并在控制台(GHCi)上打印出来,所以我只是从我对其他语言的了解中得到以下结果“[]”我认为这是因为它返回一个数组但是 print 无论如何都应该打印数组,不是吗?
这是在窗户上
我认为getProgName
fromSystem.Environment
应该这样做,但您应该检查它在 Windows 上的便携性。
"[]"
是空列表。您可以使用getDirectoryContents
来自System.Directory
.
Prelude System.Directory> getDirectoryContents "."
["hist","parse.hs","b.hs","d.hs","qsort.hs"]
该System.Environment
模块用于访问有关系统环境的信息,例如getProgName
返回可执行文件的名称。
结果[]
是一个空列表,因此您似乎正在尝试列出空目录的内容。
正如已经提到的 getProgName 应该为您解决问题。如果您不熟悉 haskell 的 I/O 功能,我建议您在《Learn You a Haskell for Great Good》之类的书中阅读有关它的内容。它有一个关于 I/O 的非常好的章节,包括命令行参数。见http://learnyouahaskell.com/input-and-output#command-line-arguments