問題タブ [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 - Scala Type クラスと継承がうまく機能しない
現在、型クラスを実装するいくつかのクラスをプログラムしています。私はこの目的のために猫を使います。この設定では、クラスA[T]
とB[T] <: A[T]
. A[T]
はモナドなので、適切なライブラリをインポートするときに、次のように書くことができます
でも書けない
scala は flatMap 演算子を見つけられないためです。代わりに、私は書く必要があります
これが機能するために。サブクラスがスーパークラスのメソッドを継承することを期待しているので、これは厄介です。
完全を期すために、問題を示す依存関係のない最小限の例を追加します。これにFilterable
は、 によって実装される型クラスがありS
ます。
が見つからないため、failing
定義はコンパイルされませんq.op
。一方、 はworking
最初に にキャストすることでこの問題を軽減しS
ます。failing
ライブラリのユーザーがサンプルを機能させるにはどうすればよいですか? メソッドを使用できるようにするために親型にキャストする必要があるのは、非常に不自然に感じます。
を実装する 2 番目の暗黙的なオブジェクトを定義できないことに注意Filterable[Q]
して(new Q[Int]()).filter
ください。S[Int]
Q[Int]
scala - 理解と猫のためのSlickでのモナドのフィルタリングと混合
次の目的があります: 次の計算フローでユーザーを追加するモナドを作成します。
- 指定された電子メールを持つユーザーが存在するかどうかを確認し、存在しない場合は次のようにします。
- 指定された資格情報が正しいかどうかを確認します (パスワードの長さが十分かどうかなど)。問題がない場合は、次のようにします。
- ユーザーをDBに保存
私の最初の「ドラフト」は次のようなものです。
これを db.run(...) できる 1 つのモナド計算で書き留める最良の方法は何ですか? Cats + Slick 3.0 を使用しています。また、 https: //groups.google.com/forum/?fromgroups#!topic/scalaquery/HrvrvyEIopw から単純な暗黙の dbioMonad を作成しました。
scala - この型依存パスのシナリオで暗黙がトリガーされないのはなぜですか
いくつかのタイプ クラス (ファンクターなど) を実装する必要がある、トレイトでいくつかのタイプを定義するとします。
今、私はこのライブラリを使いたいと思っています。以下はうまくいきます:
ただし、代わりにパラメーターを使用してメソッドで使用する場合、暗黙のインポートは機能せず (コメントアウトされた行はコンパイルされません)、代わりに自分で暗黙を記述する必要があります。
なぜそうなのか / それに対して何ができるのか.
scala - なぜ Scalaz (および Cats) はどこでも大文字の変数を使用するのですか?
(カットダウンの)例として、
F
この場合は変数なのでf
、Java ライクなライブラリのように見えると思います。
なぜ Scalaz は大文字の規則を使用するのですか? Haskell規約ですか?
なんで?
追加のメリットについては、その背後にある動機は何ですか? これまでのところ、役立つというよりも混乱していますが、慣習の背後にある理由を見逃していることは承知しています。
scala - コンポジット用の Scala 型クラス
私は合計タイプ、マッピングを持っています:
次のように定義された型クラスがあります。
いくつかの例では:
上記の flatMap に暗黙的なインスタンスを渡す方法が見つかりません。ParameterLoader[Mapping] のインスタンスが見つからないというエラーが表示されます。スコープ内にある型クラスのインスタンスを使用する必要があることをコンパイラに伝える方法はありますか?
scala - Cats ネストされた Xor catchOnly leftMap
私は、ビジネス上の意味を持つカスタム例外をスローしたり、(動的クラスのインスタンス化によって) 異なる結果タイプを返すことができるメソッドを持つ、基礎となる Java API を持っています。メソッドが結果を返すA Xor B
場所 A はエラー型ですがXor.catchOnly[CustomException]
、 leftMap メソッドを使用して例外を A に変換したかったのです。
呼び出しでこれを行うことができますxorCatchOnlyString
が、一般化しようとして思いついたzor
のですが、期待どおりにキャプチャするのではなく、例外をスローします。私がやりたいことをする方法はありzor
ますか?