問題タブ [scalaz]

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

scala - akka-camel vsscalaz-camel

誰かがakka-camel対scalaz-camel-akkaの評価をしましたか?私はscalazがもたらす機能的なアプローチが好きで、scalaz-camel-akkaを少し使用しましたが、実際にはakka-camelを使用していません。

いくつかの比較点に非常に興味があります。

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

scala - scalazでのデカルト積トラバース

論文Essenceofthe IteratorPatternに関するEricTorreborreブログ投稿で、彼はトラバースのデカルト積がトラバースでもあることを説明しています。

私には理解できないので、誰かがscalazライブラリを使用してこの例を見せてもらえますか?List[Int]問題は、私が次の両方を提供したいということだとしましょう。

  1. リスト内の要素のInt合計
  2. その要素は、 sのList[String]文字列表現に「Z」を追加することによって作成されますInt

私の理解では、これを使用してこれを行うことができますtraverseが、このソリューションとは異なり、実際に構造を1回だけトラバースするような方法で行うことができます。

注1-これを行うには他の方法があり、この例ではトラバースする必要はなく、トラバースは必ずしもそれを解決するための最も明確な方法でもありません。しかし、私はトラバースを理解しようとしているので、述べられているように質問に対する答えを本当に探しています


編集-を使用してこれを行う方法を示してくれた以下のmissingfaktorStateに感謝します。私が知りたいのは、2つの独立した計算をどのように構成できるかということだと思います。例えば; 私の関数は概念的に次のとおりです。

これらの蓄積メカニズムを互いに独立させてから、どちらかまたは両方List[Int]を使用してトラバースするかどうかを選択したいと思います。私はこのようなコードを想像しました:

エリックはこれが可能であることを暗示していますが、私はそれを行う方法がわかりません〜つまり、それらを構成できるように定義する方法shapeaccum、それらを構成する方法がわかりません。

注2 は、文字通り上記のシグニチャを持つ関数であることを意味するものではありませんshapeaccumこれらは、上記のトラバーサルを実行するために必要なタイプの式です。

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

validation - Scalaz Validation、内部値の検証

検証オブジェクトがあります

たとえば、実際の整数値が 100 に等しいかどうかを確認するために、2 番目の検証を行う必要があります。私が行った場合

私は得る:

vv を Validation[String, Option[Int]] としても最も簡潔な方法で取得するにはどうすればよいですか

=========

私自身から可能な解決策を見つけました:

機能しますが、簡潔でエレガントに見えません

==============

私自身の2番目の解決策ですが、複雑すぎるようにも見えます:

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

scala - 2つのリストの要素を組み合わせる

2つのリストがあると仮定します。

私が欲しいのは:List("a1", "b2", "c3")つまり、l1のn番目の要素をl2のn番目の要素に追加することです

それを達成する方法は次のとおりです。

Applicativeでそれを達成できるかどうかだけ疑問に思います。私は試した :

しかし、それはすべての組み合わせを与えます:

何か案が?

ありがとうございました

ブノワ

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

scala - より複雑な計算での scalaz 状態の使用

scalazStateを使用して複雑なステートフルな計算を実行する方法を理解しようとしています。問題は次のとおりです。

List[Int]潜在的な約数の aと数の a を指定して、一致するペア (除数、数)List[Int]の ] を見つけます。ここで、約数は最大 1 つの数と一致することが許可されています。List[(Int, Int)

テストとして:

そして、次の入力を使用します。

最大で 3 試合を獲得できます。リスト lr をトラバースして発生する順序で一致を作成する必要があると規定すると、一致は次のようになります。

したがって、次の 2 つのテストに合格する必要があります。

緊急の解決策は次のとおりです。

remainingの状態と累積を更新する必要があることに注意してくださいmatches。scalaz traverse のお仕事みたいですね!

私の無駄な作業は、私をここまでさせました:

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

scala - Scalaz検証:エラーを集約するか、成功を返します

scalazでそのような振る舞いを実装することはどのように可能ですか?

私の解決策は複雑に見えますが、それを簡潔にする他の方法が存在すると思います。

=====================

私の2番目の解決策:

次のように使用します。

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

validation - scalazを使ってApplicativeに関数を作成する方法

Scalaz 6を学びながら、検証を返すタイプセーフなリーダーを作成しようとしています。これが私の新しいタイプです:

そして、intとstrings(*)のマップリーダーを作成する2つの関数があります。

次のマップがあるとします。

名前と年齢を取得するために2つのリーダーを作成できます。

Boyすべて正常に動作しますが、インスタンスを構築するために両方のリーダーを作成したいと思います。

私の最善の策は次のとおりです。

期待どおりに機能しますが、2つのレベルのアプリケーションビルダーでは表現が厄介です。次の構文を機能させる方法はありますか?

(*)https://gist.github.com/1891147の完全で実行可能な実装


更新:上記の行またはダニエルの提案を試したときに表示されるコンパイラエラーメッセージは次のとおりです。

0 投票する
5 に答える
4563 参照

scala - Scalaz バリデーションを作成する

バリデーションに Scalaz を使用したいと考えており、さまざまなコンテキストでバリデーション関数を再利用できるようにしたいと考えています。私はScalazの初心者です。

これらの簡単なチェックがあるとしましょう:

私は、一方からの出力が他方に供給される検証を構成できるようにしたいと考えています。理解のために、または経由で簡単にそれを行うことができflatMapましたが、それよりも良い方法があるに違いないと感じています。

また

Scalaz の専門家からの意見はありますか?