Così ho qualcosa di simile:valori estratto da un elenco di azioni IO
[IO Blah, IO Blah, IO Blah]
e voglio davvero solo un elenco di Blah
s, come posso farlo?
P.S .: Sì, sto lavorando all'interno di una funzione IO.
Così ho qualcosa di simile:valori estratto da un elenco di azioni IO
[IO Blah, IO Blah, IO Blah]
e voglio davvero solo un elenco di Blah
s, come posso farlo?
P.S .: Sì, sto lavorando all'interno di una funzione IO.
Utilizzare sequence
.
Valutare ogni azione nella sequenza da sinistra a destra e raccogliere i risultati.
do blahs <- sequence listOfIoBlah
-- now use blahs
Quello che desideri è sequence :: Monad m => [m a] -> m [a]
. Funziona come ci si aspetta: tutte le azioni vengono eseguite in ordine, i risultati vengono raccolti e restituiti. Notare che non viene restituito nulla a meno che tutti i comandi non siano terminati.
Hoogle può essere molto utile nel rispondere a queste tipo di domande, se si sa come formulare la questione come un tipo, ad esempio: http://www.haskell.org/hoogle/?hoogle=%5BIO+a%5D+-%3E+IO+%5Ba%5D
grazie, io continuo a dimenticare di utilizzare tale ! – drozzy