問題タブ [scala-cats]
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.
scala - Seq[Eith[A,B]] を [A,Seq[B]] に減らす方法は?
エラーメッセージSeq[Either[String,A]]
である一連のいずれかが与えられます。シーケンスのLeft
すべての要素Either[String,Seq[A]]
が. 少なくとも 1 つ(エラー メッセージ) がある場合、最初のエラー メッセージまたはすべてのエラー メッセージの連結を取得したいと考えています。Right
Seq[A]
Right
Left
もちろん、cats や scalaz のコードを投稿することもできますが、それを使用しないコードにも興味があります。
編集
Either[Seq[A],Seq[B]]
メッセージの本文を反映するために最初に要求されたタイトルを変更しました。
scala - Scala - JSON オブジェクトはフィールド型で多態的です
本当にひどい JSON をデコードしようとしています。各オブジェクトの型情報は、 などのラベルが付いたフィールド内にエンコードされます。JSON のエンコード/デコードには Circe をtype
使用し"type": "event"
ています。ライブラリは型クラスを利用します。関連する型クラスはです。問題は、どの Decoder もタイプに対して不変であるということです。ここに具体的な例がありますdef apply(c: HCursor): Decoder.Result[A]
A
デコードは正常に機能しますが、MotherEvent
常に返されます
もちろん、マザー イベントの代わりに FlightEvent を使用したいと考えています。Option[A]
考えられる解決策の 1 つは、60 または 70 フィールドを持つ「マザー」タイプを作成することですが、私はすでに自分が嫌いで、フィールドに基づいて埋められる70 フィールドのことだけを考えてプログラミングをやめたいと思っていtype
ます。
誰でもこれに対する良い解決策を考えることができますか?
scala - Cats では、@op 引数リストには最大 2 つのパラメーターがありますか?
Cats の simulacrum の @typeclass とは何かについて少し興味があります。
これはドキュメントの例であり、正常に機能しており、理にかなっています。
ただし、リストに 3 つの引数がある場合、@op に 3 つの引数を適用する方法がわかりません。私の理解では、セミグループは2つの引数の組み合わせです。ただし、コンパイルはエラーを報告しないので、@op マクロを改善して 2 つのパラメーターのみを受け入れるようにするか、@op に 3 つ以上の引数を使用するにはどうすればよいでしょうか。