Estoy en el capítulo I/O de Real World Haskell. Las mónadas no se discuten en el libro para otros 7 capítulos. Lo que quiere decir que mi comprensión de E/S es, en el mejor de los casos, incompleta.mapa frente a comportamiento mapM
En este momento estoy tratando de comprender la función mapM. Según lo entiendo, la función "ejecuta" cada elemento de la lista que debe ser una "acción" (mónada IO).
Lo que no tiene sentido es this example. ¿Por qué MapM devuelve un resultado diferente que el mapa para los mismos argumentos?
Prelude> map (\x -> [x]) [0, 1, 2] [[0],[1],[2]] Prelude> mapM (\x -> [x]) [0, 1, 2] [[0,1,2]]
también es divertido: 'longitud (mapM (\\ _-> a) b) == length a^length b'. Creo. – muhmuhten