問題タブ [scalaz7]

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 に答える
124 参照

scala - 式の下線

以下の抜粋でアンダースコアはどういう意味ですか. これは scalaz7 ライブラリの一部です:

それを使用する一般的なルールは何ですか?

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

scala - scalaz.Validation loopSuccess と loopFailure の仕組み

のメソッドの下でどのように機能するかを実際の例で誰かが説明できscalaz.Validationますか? と. loopSuccess_loopFailure

ソースコードからの抜粋 (scalaz7):

scalaz.検証:

コンパニオン オブジェクト:

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

scala - Scalaz - List と State Monad を組み合わせて理解する

私は Scala コードで、特にスレッド状態のためにモナディック スタイルを使用することを計画しています。これは、3 つのモナド関数を組み合わせた単純な例です (副作用のみを考慮します)。

これはすべて自明であり、期待どおりに機能します。Listしかし、このアプローチが私にとって本当に役立つためには、それをfor-comprehensionと組み合わせられるようにしたいと考えています。これは、私が何を意味するかを示すための少しの (動作しない) コードです。

基本的に、 a からの引数に基づいてモナドを結合できるようにしたいと考えていますList- の各要素でモナド関数を実行し、list副作用を累積します。サンプルの構文が機能しないことは理解しており、機能しない理由もわかります。クリーンでエレガントな等価物を探しているだけです。

scalaz モナド トランスフォーマーを使用して、より具体的にはこれを実現できると確信してStateTいますが、どうやってそれを行うのかはよくわかりません。

PS。私は Scalaz 7.0-M3 を使用しているため、構文は最も一般的な 6.x とは少し異なる場合があります。

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

scala - オブジェクトのフィールド検証を処理するための最良の方法=>どちらか/試行(scala 2.10)/ ValidationNEL(scalaz)

ビルダーパターンを使用して構築されたオブジェクトを想定しましょう。

このビルダーパターンには、buildフィールドの検証とターゲットタイプへの変換に焦点を当てたメソッドが含まれます。

この検証は、以下を使用して実装できます。

  • Either[FailureObject, TargetObject]タイプ
  • Try[TargetObject](Scala 2.10の新機能)
  • Validation[FailureObject, TargetObject]またはValidationNEL[FailureObject, TargetObject]scalazライブラリから

ValidationオーバーEitherタイプの主な利点の1つは、Validation「箱から出して」障害を蓄積できることです。

しかし、「新しい」Try方法はどうでしょうか。Try箱から出してすぐに使える「モナディック」メソッドもあることに気づきました。たとえばmap、 。flatMapの助けを借りずにどちらのタイプでも本当に欠けていたものですProjection

Try[FieldType]したがって、各フィールド検証メソッドがaを返し、より正確には、障害が発生した場合にTry[SpecificFieldExceptionType];を返すことを想像します。このネストされたものStringには、メソッド全体で蓄積できるメッセージフィールドとrootCauseフィールドが含まれていますbuild

Scala 2.10を使用して、Tryビルダーパターンのような単純な検証のためにscalaz検証ライブラリを置き換える練習をすることができますか?

**編集****

Tryソースコードを読み取ることにより、Tryいくつかの例外を蓄積できないように聞こえ、したがってフェイルファストに向けられます。Try.flatMap潜在的な以前の失敗を返すことさえあるので、蓄積の概念がありません:

それどころか、ValidationNEL蓄積機能を処理します。

確認はありますか?

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

scala - Listが半群であるのにSeqがそうではないのはなぜですか?

私はscalazにかなり慣れていないので、次のコードが機能する理由を理解しようとしています。

しかし、これはそうではありません...

セミグループのマップは暗黙的に表示されますが、リストまたはシーケンスのマップは表示されません。

カップルの質問:

  1. ListSemigroupの暗黙の場所はどこですか?
  2. Seq用のものがないのはなぜですか?
0 投票する
1 に答える
254 参照

scala - ポイントリーダーモナドscala

コンテキストpoint内の値を簡単に取得する方法はありますか? オブジェクトを使用してコンテキストを無視できます。Reader
Reader

Scalaz には、pointこのための具体的な方法があるようです。なるほど、それは で定義されていApplicativeます。Reader値をコンテキストに入れる方法には、いくつかのトリックがあると思います。

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

scala - scalaz トランポリンと IO

この質問はこの他の質問に関連していますが、より単純なケースに縮小されています。

次のインポートを想定しています。

次のジェネレーターがあります。

および次の非末尾再帰定義:

結果は次のとおりです。

IOマップ/フラットマップもトランポリンするようにするにはどうすればよいですか? 理解のために、2番目の内部に他のネストされたスタックが作成されているようです。抽出された io 値をTrampolineT使用してサスペンドに再ラップする を作成する必要がありますか?unsafePerformIO