Haskell:
コマンドライン引数の読み取り
How to: (方法)
import System.Environment (getArgs)
-- main関数ではコマンドライン引数を取得してprintします。
main :: IO ()
main = do
args <- getArgs
print args
サンプル出力:
$ runhaskell args.hs arg1 arg2 arg3
["arg1","arg2","arg3"]
Deep Dive (掘り下げ)
HaskellではSystem.Environment
モジュールのgetArgs
関数を使ってコマンドライン引数を読みます。この方法は過去数十年に渡って、多くのプログラミング言語で採用されてきました。
他にもコマンドライン引数を解析するためのライブラリ(例:optparse-applicative
)があり、より複雑な引数のパターンを簡単に扱えます。
実装の詳細として、getArgs
はIOモノイドの中で使われ、プログラムの実行時に一度だけ値を取得することができます。これはHaskellの純粋性を保ちつつ、外部の世界と対話する方法です。
See Also (関連情報)
- The Haskell 98 Report: System.Environment: https://www.haskell.org/onlinereport/standard-prelude.html#sect36.3
optparse-applicative
ライブラリのHackageページ: https://hackage.haskell.org/package/optparse-applicative- Real World Haskellのコマンドライン引数の扱いに関する章: http://book.realworldhaskell.org/read/io.html