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

0 投票する
2 に答える
858 参照

haskell - Haskell はどちらかの Double Bool を返します

私は簡単なコードを持っています

私はHaskellを学び始めたばかりで、BoolまたはDoubleを返す方法がわかりません。誰か助けてもらえますか?

エラーは次のとおりです。

0 投票する
3 に答える
1329 参照

haskell - EachモナドのコンテキストでData.Map.lookupを使用する方法は?

Data.Map を使用して文字列を関数にマップしようとしています。私が抱えている問題は、私のプログラムの主なエラー処理が、Either モナドを使用し、Map.lookupを返すことMaybe ([SomeVal] -> Either ValError SomeVal)です。Map.lookupこの場合、Either モナドをうまく扱うにはどうすればよいでしょうか?

0 投票する
2 に答える
2832 参照

validation - 検証と選言

次のシグネチャを持つメソッドを書きたいとします。

入力内の文字列のペアごとに、両方のメンバーが整数として解析できること、および最初のメンバーが 2 番目のメンバーよりも小さいことを確認する必要があります。次に、発生したエラーを累積して整数を返す必要があります。

まず、エラー タイプを定義します。

これで、次のようにメソッドを実装できます。

または、代わりに:

なんらかの理由で、最初の操作 (ペアが文字列として解析されることの検証)は検証の問題のように感じます、2 番目の操作 (値のチェック)は論理和の問題のように感じますこれは、モナドインスタンスがないため、を使用する必要があることを示唆しています)。\/ValidationNel[Throwable, _]

私の最初の実装では、ValidationNel全体を通して使用foldし、最後に一種の偽物として使用しflatMapます。2 つ目では、エラーの蓄積が必要か、モナド バインドが必要かによって、 と の間を適切にValidationNel行き来します。\/それらは同じ結果を生成します。

私は実際のコードで両方のアプローチを使用してきましたが、まだどちらかを優先していません。何か不足していますか?どちらかを優先する必要がありますか

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

c# - モナドと例外ケースのいずれか

GetUserFromDb(int id) などのいずれかを返す関数があり、データベースがオフラインの場合、関数でエラーをキャッチして失敗/左のケースでラップする必要があります。または、例外としてバブルアウトさせる必要があります。私にはどうすることもできず、本当に例外的な状況です。

コメント/提案を歓迎します。

乾杯、

ブレア

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

haskell - haskell のいずれかの文字列 (NestedList a) - 機能しないのはなぜですか

通常のリストのようにネストされたリストで機能する関数を追加しようとしています。エラーまたは追加されたリストを返すように、Either String (Nested a) を使用したいと考えています。しかし、それは失敗し続けます。NestedList[NestedList a] どこでもやっていません。[NestedList (NestedList a)] が期待されていると言うのはなぜですか

このエラーが表示されます

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

haskell - haskell のデータ型を理解する

私はハスケルの新蜂です。ここで何が起こっているのか頭を包むことはできません

それは私にエラーを与える

予想される型Either String (NestedList a)' with actual typeNestedList a'と一致しませんでした' List' In the expression: List (a ++ b) In an equation forappend' の呼び出しの戻り値の型: append (List a) (List b) = List (a ++ b)。

しかし、それはor and型data NestedList a=Elem a | List [NestedList a]であるという意味ではありませんかNestedListElemList of NestedList

その追加は、またはのいずれStringかを返すことができますNestedList。今私がそうするとき、私List(a++b)は戻ってきListます。それはうまくいくはずですよね?

私の他の機能は平らになります

入力パラメータが である間は正常に動作しますがNestedList、ghc は flatten (List(x:xs))whereList(x:xs)がちょうど であっても問題ありませんList。なぜここで文句を言わないのですか?入力はありますか?

0 投票する
4 に答える
4458 参照

scala - どちらかでエラーを蓄積する方法は?

それらをテストするためのケースクラスと関数がほとんどないとします。

ここで、新しいケース クラスPersonとテスト関数を定義します。これは高速で失敗します

ここで、高速に失敗するのではなく、関数にエラーtestPerson蓄積させたいと考えています。

これらすべての関数testPersonを常に実行して戻りたいと思います。どうやってやるの ?test*Either[List[String], Person]