問題タブ [either]
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 - 「純粋に適用可能などちらか」の標準名または実装はありますか?
私は「純粋に応用的」と私が呼んでいるものEither
、つまりEither
、Applicative
インスタンスを実装しない限りインスタンスが利用可能であるという用途を頻繁に見つけますMonad
。
のインスタンスApplicative
よりも強力な「エラーの要約」の概念を提供するため、非常に便利です。そのために、何度も何度も実装しています。Either
Monad
どこかに標準インスタンスはありますか?標準的な名前もありますか?
json - Argonaut.io:どちらかを含むクラスのRight/Leftのjsonプロパティの名前を変更する方法
Argonaut では、ケース クラスにいずれかが含まれているインスタンスで、対応する JSON プロパティ名を簡単に変更する方法を教えてください。
たとえば、次の定義があるとします。
FooBar
を JSON のような形式に変換するとFooBar(Right(Bar("hello"))).asJson.spaces4
、次のようになります。
上記の出力で「Right」の名前をより意味のある名前に変更する最も簡単な方法は何ですか? (私の実際のシナリオには、多くのイーザーを持つ多くのケース クラスがあるため、可能な限り最も簡潔な方法を探しています。)
haskell - EachT でエラーを累積する
私は、巨大な JSON ドキュメントを受け取り、それを断片的に解析し、断片ごとにエラー メッセージを報告することになっている Web API の次の小さなミニ サンプル アプリケーションを持っています。
次のコードは、EitherT (およびエラー パッケージ) を使用した実際の例です。ただし、問題は、EitherT が最初に検出された Left で計算を中断し、最初に検出した「エラー」を返すことです。私が望むのは、生成可能なすべてのエラー メッセージのリストです。たとえば、最初の行がrunEitherT
失敗した場合、それ以上できることはありません。しかし、2 行目が失敗した場合でも、2 行目にはデータの依存関係がないため、後続の行を実行しようとすることができます。したがって、理論的には、一度に多くの(必ずしもすべてではない) エラー メッセージを生成できます。
すべての計算を遅延して実行し、見つけたすべてのエラー メッセージを返すことは可能ですか?
誰かがいくつか持っている場合は、リファクタリングの提案にもオープンです。
scala - 例外を発生させる関数をどちらかを返す関数に変換する方法は?
例外を発生させる関数がいくつかあるとします。ラッピングしてお返ししていEither[Throwable, <function return type>]
ます。Either
(ではなく が必要だと仮定しましょうTry
)。
ここで、bolierpllate コードを取り除く汎用ラッパーを書きたいと思います。あなたは何を提案しますか?
scala - どちらかのシーケンスから 'Left's のシーケンスを射影しますか?
(注意 - 私は scala noob です) のシーケンスが与えられた場合Eithers
、つまり
上のマップを使用してすべてのエラーを抽出しようとしていますleft(s)
ただし、これは戻ります
Seq[ErrorResponse]
私が望んでいたのではなく。
私を不幸から解放してください。
haskell - Haskellでのどちらかを使用した純粋なエラー処理:エラーの可能性を考慮して折りたたむ方法は?
私は主にEither
モナドに興味があり、Control.Error
. errors-1.0: Simplified error handling を読んで、純粋なエラーはIO エラーとは別にしておくべきだと確信しました。これはerror
、fail
、 、exitFailure
が、その使用を IO モナドに減らすべき関数であることを意味します。純粋な計算では条件エラーが発生する可能性がありますが、決定論的です。
現在、foldsを扱っていると、配列内の要素が条件エラーを生成し、計算全体が満たされない状況が発生する可能性があります。例 ( Data.ConfigFileを使用):
状況は次のとおりです。単一の要素が置換を実行していない場合、値全体を計算できないという理由だけで、複雑な型を持つ acc を使用しています。
私の質問は次のとおりです。これは醜いですか?これを行うより良い方法はありますか?いくつかの IO チェックEitherT CPError IO String
のために、タイプの厄介なユーティリティがいくつかあります。acc