問題タブ [optparse-applicative]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - optparse-applicative ReadM で openFile からの例外を処理する
optparse-applicative を使用して、オプションの引数が必要です。これはファイルへのパスである必要があり、指定されていない場合はstdin
. ここでの明らかな選択は、この引数の型を作成IO Handle
し、引数が使用中に渡される場合openFile
です。これが私が現在持っているものです:
これに関する問題は、適切にhandle
例外をopenFile
処理せず、代わりにハンドルされない例外のデフォルトの動作に依存することです (エラーを出力して終了します)。これはヤバイらしい。
Left
からのエラーメッセージで戻るのがより適切な方法だと思いますopenFile
。問題は、eitherReader
a を期待しているString -> Either String a
ため、次のようなことができないことです。
もちろん、 の型から、tryOpenFile
これが型チェックされないことがわかります。IO String
エラーを取得するには IO 計算を実行する必要があるため、エラー メッセージが である必要があるように思われるため、私が求めていることが可能かどうかはわかりません。したがって、少なくともeitherReader
aString -> IO (Either String a)
または aを取得する必要があるようですString -> Either (IO String) (IO Handle)
。それらの基本的な理解から、ここでモナド変換子を使用して ReadM をラップできるように思えます (またはその逆?)。しかし、それは私の理解が進むよりも少し深いものであり、どのように先行するかについて途方に暮れています.
optparse-applicative でhandle
ingを達成する方法はありますか?IOException
ReadM
haskell - Haskell の optparse-applicative で複数の値を持つオプションを使用する方法
実行時にハングする optparse-applicative を使用した次の Haskell コードがあります。
この問題は、コンビネーターを削除するとコードが正常に動作するため、多くのコンビネーターの使用に関連しています。
これはバグですか、それとも何か間違っていますか?
ありがとう!
haskell - 「optparse-applicative」を使用してグローバル オプションを作成し、区別するにはどうすればよいですか?
を使用して作成した Haskell 実行可能ファイルで、すべてのサブコマンドから使用できるグローバル オプションと一緒にグローバルオプションを使用optparse-applicative
したいと考えています。ただし、サブコマンドを使用して CLI にオプションを追加するために提供されている例(以下を参照) では、利用可能なオプションが一貫していません。--version
--help
--version
--version
サブコマンドのヘルプには表示されません
私が望む動作は、--version
グローバルおよびすべてのサブコマンドで利用できるようにすることです。
これを達成する方法はドキュメントから明らかではありません。
実際、理想的には、ヘルプ出力でオプションを明確にグループ化できるようにしたいと考えています。
を使用してこれを達成する方法はありoptparse-applicative
ますか?
haskell - optparse-applicative を使用してコマンド ライン文字列を生成する
タイプのParser a
と の値を指定するとa
、関連するコマンドラインを (テキスト形式で) 生成できますか? (基本的に、optparse-applicative
一般的に使用されるものとは正反対です!)
たとえば、次のようなものが与えられます...
...次をどのように変換しますか...
...に...