Así que tengo algo así como:valores extracto de una lista de acciones IO
[IO Blah, IO Blah, IO Blah]
y realmente quiero sólo una lista de Blah
s, ¿cómo puede hacerlo?
P.S .: Sí, estoy trabajando dentro de una función IO.
Así que tengo algo así como:valores extracto de una lista de acciones IO
[IO Blah, IO Blah, IO Blah]
y realmente quiero sólo una lista de Blah
s, ¿cómo puede hacerlo?
P.S .: Sí, estoy trabajando dentro de una función IO.
Utilice sequence
.
Evalúe cada acción en la secuencia de izquierda a derecha y recoja los resultados.
do blahs <- sequence listOfIoBlah
-- now use blahs
Lo que quiere es sequence :: Monad m => [m a] -> m [a]
. Funciona como espera: todas las acciones se ejecutan en orden, los resultados se recopilan y devuelven. Tenga en cuenta que no se devuelve nada a menos que todos los comandos hayan finalizado.
Hoogle pueden ser muy útiles para responder a este tipo de preguntas, si usted sabe cómo formular la pregunta como un tipo, por ejemplo: http://www.haskell.org/hoogle/?hoogle=%5BIO+a%5D+-%3E+IO+%5Ba%5D
gracias, me olvido de utilizar ese ! – drozzy