2017-09-06 17 views
1

Le problème: Je donne les résultats suivants Future[Option[T]] monade et je voudrais appliquer scalaz Monad Transformer OptionT à elle. Je ne suis intéressé que par le résultat optionnel.Est-il possible de changer la séquence monadique?

Question: Est-il possible de produire Option[Future[T]] de Future[Option[T]] préserver la sémantique?

+0

Notez que votre question est tout à fait semblable à [celui-ci] (https://stackoverflow.com/questions/38226203/scala-optionfuturet-to-futureoptiont), seulement inversée direction. – slouc

Répondre

1

Utilisation .sequence:

scala> import scalaz._, Scalaz._, ... 

scala> val a: Future[Option[Int]] = Future(None) 
a: Future[Option[Int]] = Future(Success(None)) 

scala> val b = a.sequence 
b: Option[Future[Int]] = None 
+0

Merci. Mais existe-t-il un moyen plus court d'obtenir 'OptionT' de' Future [Option [T]] '? –

+0

Je ne suis pas sûr de comprendre votre question. (Cela n'a rien à voir avec monad transformateur) – OlivierBlanvillain