2016-11-09 5 views
3

M[F[A]]を含む理解のために私は単純なモナドトランスフォーマーを試してきましたが、MFはモナドです。 Sが別のモナドである場合、M[F[A]]M[S[A]]をfor compで一緒に動作させるにはどうすればよいですか?例えばスララのモナドトランス

val a: Future[List[Int]] = ... 
val b: Future[Option[Int]] = ... 

aListT[Future, Int]bOptionT[Future, Int]が必要ですが、これらは構成されていないが必要ですが、私は別の変圧器を使用する必要がありますか?これはfor compで使用する順序に依存しますか?

答えて

4

モナドトランスフォーマーは、タイプF[G[X]]の2つの値を作成するのに役立ちます。他の点では

彼らはあなたがMonad[G]が存在する場合は2 G[X]を構成する方法を知っているという事実を活用するので、モナド変圧器はF[G[X]]で動作します。

さて、F[G[X]F[H[X]]の場合には、あなたがGHMonadインスタンスを持っていると述べている場合でも、あなたはまだそれらを構成する一般的な方法はありません。

F[G[X]]F[H[X]]にはモナド変圧器の一般的な解決策がありません。

関連する問題