在haskell中,我將如何獲取並打印出執行腳本的名稱? 另外,因爲我在這裏時,我使用一些代碼來列出目錄內容,並在控制檯(GHCi)打印出來,我只是從我的其他語言的知識得到以下結果「[]」我會認爲這是因爲它返回數組,但然後打印應該打印數組,不是嗎?確定正在執行的腳本的名稱
這是關於System.Environment
模塊用於訪問關於系統的環境的信息的窗口
在haskell中,我將如何獲取並打印出執行腳本的名稱? 另外,因爲我在這裏時,我使用一些代碼來列出目錄內容,並在控制檯(GHCi)打印出來,我只是從我的其他語言的知識得到以下結果「[]」我會認爲這是因爲它返回數組,但然後打印應該打印數組,不是嗎?確定正在執行的腳本的名稱
這是關於System.Environment
模塊用於訪問關於系統的環境的信息的窗口
,如getProgName
它返回可執行文件的名稱。
結果[]
是一個空的列表,所以看起來你試圖列出一個空目錄的內容。
我認爲getProgName
從System.Environment
應該這樣做,但你應該檢查它在Windows上的可移植性。
"[]"
是空白列表。您可以使用System.Directory
的getDirectoryContents
。
Prelude System.Directory> getDirectoryContents "."
["hist","parse.hs","b.hs","d.hs","qsort.hs"]
正如已經提到的getProgName應該爲你做的伎倆。如果你不熟悉Haskell的I/O函數,我會建議你在一本書中讀一下它,例如Learn Your Haskell for Great Good。它在包含命令行參數的I/O上有一個相當不錯的章節。看到http://learnyouahaskell.com/input-and-output#command-line-arguments
當我使用getProgName輸出是「」 –
ace007
是的,因爲你使用的是ghci。嘗試在編譯和運行的haskell程序中使用它。 – Satvik