問題タブ [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.
scala - この構成を単純化するためにモナド変換子を使用できますか?
私が持っていると仮定します
タイプの結果を取得したいのですVS[Option[B]]が、vが a のSuccess(None)場合、結果もSuccess(None). 次に例を示します。
それで:
成功例は次のとおりです。
空のケースは次のとおりです。
これを行うための「より良い」方法はありますか (おそらく kleisli コンポジションまたはモナド トランスフォーマーを含む)?
haskell - クライスリの矢印をIOに持ち上げますか?
次の2つのクライスリ矢印がある場合:
私は次のような何かを書くことができるようにしたいと思います:
Stringと一致しないため、もちろん機能しませんIO String。一方、両方を定義してタイプにすることは可能ですstdoutProcessAがwriteToFileA、その場合、他のものに必要なKleisli IO ...タイプの矢印でそれらを構成することはできません。Kleisli Maybe ...
私はまだ矢印の経験があまりないので、おそらく明らかな何かが欠けています。上記をどのように行うのでしょうか?
haskell - モナドでクライスリの矢印を使用するには?
Haskell のControl.Arrowドキュメントでは、Kleisli の矢印とモナドの関係について説明していますが、これをどのように使用するかは私には明らかではありません。私は IO モナドを除いて矢印に合うと思う関数を持っているので、Kleisli の矢印が役立つと思います。
ディレクトリの元のファイル名と変更されたファイル名のペアを返す次の関数を使用します。
それを描くとしたら、次のようになります。

Kleisli の矢を使用すると効果があると思いますが、方法がわかりません。誰でもガイダンスを提供できますか?
scala - Kleisli はファンクター、アプリカティブ、またはモナドですか?
この質問は、私の前の質問に寄せられたフィードバックに触発されています
ScalazKleisli[M[_], A, B]関数のラッパー クラスを提供しますA => M[B]。
Kleisli[M[_], A, B]が半群ならM[_]半群です。それM[_]が関手であるとします。Kleisliファンクターでもあるのは正しいですか?M[_]applicative または monad の場合はどうなりますか?
scala - Scalaz Kleisli の使用上のメリット
In scalaz Kleisli[M[_], A, B]は のラッパーでありA => M[B]、そのような関数の合成を可能にします。たとえば、 if M[_]is モナドを構成Kleisli[M, A, B]してKleisli[M, B, C]with >=>to get を作成できますKleisli[M, A, C]。
一言で言えば、に応じてKleisliファンシーを提供します。それが正しいか ?を使用する他の利点はありますか? andThensMKleisli
scala - Kleisli、ReaderT、Reader が Scalaz で同じなのは単なる偶然か
スカラスで
Kleisli[F, A, B]のラッパーですA => F[B]。ReaderT[F, A, B]-- リーダー モナド トランスフォーマー -- は単に のエイリアスですKleisli[F, A, B]。Reader[A, B]monad はReaderTwith identity monadId:の特殊化です
type Reader[A, B] = ReaderT[Id, A, B]。
それは単なる偶然なのか、それとも Scalazで 、、が同形であるより深い理由があるのでしょうか?KleisliReaderTReader