私は、モナドを使ってコマンドライン引数の解析と生成の騒ぎを抽象化するライブラリを探しています。私は心の中で、次のかなり明白な使用パターンを持っている:モナドライブラリを読むコマンドライン引数
main = do
portOrSocket <- Args.run $ do
mbSocket <- Args.read $ Args.Arg "s" "socket" "Description"
mbPort <- Args.read $ Args.Arg "p" "port" "Description"
case mbSocket of
Just socket -> return $ Right socket
Nothing -> case mbPort of
Just port -> return $ Left port
Nothing -> return $ Left defaultPort
...
上記のコードは、構文解析、検証と使用方法の生成を処理するために必要なすべての情報を持っており、IMOが理解することはかなり簡単です。残念なことに、ハッカーを見てcmdargs、cmdlib、parseargs、ReadArgsのようなパッケージをチェックした後、私はこれに近いところには何も見つかりませんでした。しかし、実装に入る前に、私が何かを見逃さないようにしたいと思います。それで、問題と同様のアプローチを利用するライブラリはありますか?
あなたは 'optparseは-applicative'を試したことがありますか? –
+1は 'optparse-applicative'です。それは素晴らしい。 – jtobin
パラメータが他のパラメータの値に依存する場合、自動ヘルプメッセージを生成することはほとんど不可能であるようです。これはおそらく_optparse-applicative_がApplicativeを使用する理由です。 –