問題タブ [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.

0 投票する
1 に答える
219 参照

haskell - optparse-applicative ReadM で openFile からの例外を処理する

optparse-applicative を使用して、オプションの引数が必要です。これはファイルへのパスである必要があり、指定されていない場合はstdin. ここでの明らかな選択は、この引数の型を作成IO Handleし、引数が使用中に渡される場合openFileです。これが私が現在持っているものです:

これに関する問題は、適切にhandle例外をopenFile処理せず、代わりにハンドルされない例外のデフォルトの動作に依存することです (エラーを出力して終了します)。これはヤバイらしい。

Leftからのエラーメッセージで戻るのがより適切な方法だと思いますopenFile。問題は、eitherReadera を期待しているString -> Either String aため、次のようなことができないことです。

もちろん、 の型から、tryOpenFileこれが型チェックされないことがわかります。IO Stringエラーを取得するには IO 計算を実行する必要があるため、エラー メッセージが である必要があるように思われるため、私が求めていることが可能かどうかはわかりません。したがって、少なくともeitherReaderaString -> IO (Either String a)または aを取得する必要があるようですString -> Either (IO String) (IO Handle)。それらの基本的な理解から、ここでモナド変換子を使用して ReadM をラップできるように思えます (またはその逆?)。しかし、それは私の理解が進むよりも少し深いものであり、どのように先行するかについて途方に暮れています.

optparse-applicative でhandleingを達成する方法はありますか?IOExceptionReadM

0 投票する
1 に答える
211 参照

haskell - Haskell の optparse-applicative で複数の値を持つオプションを使用する方法

実行時にハングする optparse-applicative を使用した次の Haskell コードがあります。

この問題は、コンビネーターを削除するとコードが正常に動作するため、多くのコンビネーターの使用に関連しています。

これはバグですか、それとも何か間違っていますか?

ありがとう!

0 投票する
1 に答える
427 参照

haskell - 「optparse-applicative」を使用してグローバル オプションを作成し、区別するにはどうすればよいですか?

を使用して作成した Haskell 実行可能ファイルで、すべてのサブコマンドから使用できるグローバル オプションと一緒にグローバルオプションを使用optparse-applicativeしたいと考えています。ただし、サブコマンドを使用して CLI にオプションを追加するために提供されている例(以下を参照) では、利用可能なオプションが一貫していません。--version--help--version--version

サブコマンドのヘルプには表示されません

私が望む動作は、--versionグローバルおよびすべてのサブコマンドで利用できるようにすることです。

これを達成する方法はドキュメントから明らかではありません。

実際、理想的には、ヘルプ出力でオプションを明確にグループ化できるようにしたいと考えています。

を使用してこれを達成する方法はありoptparse-applicativeますか?


0 投票する
1 に答える
88 参照

haskell - optparse-applicative を使用してコマンド ライン文字列を生成する

タイプのParser aと の値を指定するとa、関連するコマンドラインを (テキスト形式で) 生成できますか? (基本的に、optparse-applicative一般的に使用されるものとは正反対です!)

たとえば、次のようなものが与えられます...

...次をどのように変換しますか...

...に...