問題タブ [kleisli]

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

scala - オプションを返す関数の作成

type の関数がいくつかあるとしますInt => Option[Int]

>=>次のように構成できます。

リストからすべての関数を作成する必要があるとします。

私はそれを行うことができmapますreduce

それ(composed上記)を単純化できますか?

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

scala - Scalaz に >=> A => M[A] の半群がないのはなぜですか?

これは私の前の質問のフォローアップです

Kleisli<=<(compose) と>=>(andThen)の 2 つの演算子を定義します。私にとっては非常に自然に見えますが、どのように役立つ>=>かわかりません。<=<

>=>また、半群がないように見えますA => M[A]が、<=<半群は存在します。

その背後にある理論的根拠は何ですか?

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

haskell - なぜクライスリはモノイドのインスタンスではないのですか?

タイプ (a -> mb) の 2 つの関数を追加して、両方の結果を追加する同じタイプの関数を 1 つだけ取得する場合は、Kleisli を使用できます。

ただし、現在、 で定義されているそのようなインスタンスはありませんControl.Arrow。Haskell ではよくあることですが、正当な理由があるのではないかと疑っていますが、どれかを見つけることができません。

ノート

この質問は、この質問にかなり似ています。ただし、モノイドでは、次のようなインスタンスを定義する方法がわかりません。

すでにインスタンスがあるため:

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

scala - Scala で Kleisli と Reader モナドを作成する

次のような関数があるとします。

それらを構成して、 、 、および を順番fooXAD: X => A => Try[D]に呼び出しfooXAB、それらすべてに引数を渡す新しい関数 を作成したいと思います。fooXBCfooXCDX

scalazのモナドインスタンスを使用して持っているとしますscala.util.Try。今、私はこのようにすることができます:

それは理にかなっていますか?それを単純化することは可能ですか?

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

scala - Scala で Writer と Kleisli を使用して XML を検証する

これは私の前の質問のフォローアップです

次のような XML を検証する必要があるとします。

ルート要素にラベルがあり、この順序でa<a1>xxx</a1>、があることを確認する必要があります。<a2>yyy</a2><a3>zzz</a3>

List[String]エラーを収集し、次のような単一の XML 要素を検証する関数を定義するために使用したいと思います。

これで、特定の XML 要素のラベル、テキスト、および属性を検証する関数を作成できるようになりました。

はモノイドである|+|ため、これらの関数を構成できます。ValidateSingleElement

ここで、特定の要素の子を検証する関数が必要です。このような関数を作成するには、要素 のシーケンスを検証する別の関数が必要です

ValidateElements次のように定義されます。

一連の要素をトラバースしながらエラーを収集するためにList[String]andモナドを使用しています。Writer

これで、特定の要素の子を検証する関数を作成できます。

...そして、シーケンスの最初の要素を検証します:

ValidateElements最後に、次のように再定義できますKleisli

...そして、関数の代わりにchildを返すように書き直します。Kleisli

childchildren私が書くことができる両方を考えると、a上記の XML の検証関数:

それは理にかなっていますか?このデザインをどのように修正/拡張しますか?