2

在 haskell 中,我将如何获取并打印出执行脚本的名称?另外,因为我在这里使用一些代码列出目录内容并在控制台(GHCi)上打印出来,所以我只是从我对其他语言的了解中得到以下结果“[]”我认为这是因为它返回一个数组但是 print 无论如何都应该打印数组,不是吗?

这是在窗户上

4

3 回答 3

6

我认为getProgNamefromSystem.Environment应该这样做,但您应该检查它在 Windows 上的便携性。

"[]"是空列表。您可以使用getDirectoryContents来自System.Directory.

Prelude System.Directory> getDirectoryContents "."
["hist","parse.hs","b.hs","d.hs","qsort.hs"]
于 2013-01-17T12:51:55.733 回答
5

System.Environment模块用于访问有关系统环境的信息,例如getProgName返回可执行文件的名称。

结果[]是一个空列表,因此您似乎正在尝试列出空目录的内容。

于 2013-01-17T12:51:35.500 回答
2

正如已经提到的 getProgName 应该为您解决问题。如果您不熟悉 haskell 的 I/O 功能,我建议您在《Learn You a Haskell for Great Good》之类的书中阅读有关它的内容。它有一个关于 I/O 的非常好的章节,包括命令行参数。见http://learnyouahaskell.com/input-and-output#command-line-arguments

于 2013-01-17T16:51:01.367 回答