Existuje metóda Scala Library, ktorá vykonáva konverziu Seq[Option[T]] -> Option[Seq[T]]
?
Ekvivalent Haskell by bol sequence :: Monad m => [m a] -> m [a]
.
odpovede:
4 pre odpoveď č. 1Toto nie je bohužiaľ k dispozícii v štandardnej knižnici (aj keď existuje Future.sequence
, ako uvádza pedrofurla vyššie). Časť tohto dôvodu je pravdepodobne len preto, že štandardná knižnica Scala nemá žiadnu predstavu o aplikáčných funktoroch (alebo dokonca monádiách, naozaj).
Ako už pedrofurla spomína vyššie, Scalaz ktorý poskytuje sequence
, a je to skutočne oveľa vhodnejšienapísané ako Haskellovo - namiesto toho, aby vyžadovalo niečo monadické vo vnútri zoznamu ako vstup, akceptuje čokoľvek s aplikáciou aplikácie funktoru v niečom s priechodnou inštanciou (to znamená, že je ekvivalentom Data.Traversable
"s sequenceA
v Haskell, nie v sequence
v Prelude).