/ / Scala ekvivalentná Haskellovej sekvencii - scala, funkčné programovanie, typová konverzia, scala-collections

Scala ekvivalentná Haskellovej sekvencii - scala, funkčné programovanie, typová konverzia, scala-collections

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ď č. 1

Toto 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).