Haskell:
读取命令行参数

How to: 怎麼做

在Haskell中,System.Environment模塊提供讀取命令列參數的功能。看一下怎麼用:

import System.Environment (getArgs)

main :: IO ()
main = do
    args <- getArgs
    putStrLn ("你傳入了以下參數: " ++ show args)

-- 假想的終端機輸入:
-- > myprog param1 param2 param3

-- 輸出:
-- 你傳入了以下參數: ["param1", "param2", "param3"]

getArgs函數傳回一個字串列表,其中包含了所有的命令列參數。

Deep Dive 深入瞭解

命令列參數的讀取可以讓程序接受用戶或其他程序的輸入。Haskell語言從早期就支持這一功能,這是大多數作業系統終端機的標準做法。

其他的替代方法,例如讀取環境變量或是配置文件,但這些並不適用於臨時參數或一次性任務。對於複雜的命令列參數解析,Haskell社群也發展出了一些更強大的庫,比如optparse-applicative,提供了類似GNU的參數設置。

在實作時,命令列參數從操作系統的進程管理中得到,通常在程式啟動時由操作系統提供。在Haskell中,這些參數被作為字串列表呈現,可以透過getArgs很容易讀取。

See Also 參閱資料

閱讀官方文檔了解更多庫的用法,而optparse-applicative可以為需要更複雜命令列處理的應用提供更多功能。透過真實世界Haskell書籍學習更多命令列和檔案I/O的實際操作。