Mi pregunta es acerca de la función sequence
en Prelude
, la firma de los cuales es el siguiente:¿Por qué la aplicación de `sequence` en List of Lists conduce al cálculo de su producto cartesiano?
sequence :: Monad m => [m a] -> m [a]
que entender cómo funciona esta función para List
de Maybe
s. Por ejemplo, aplicar sequence
en [Just 3, Just 9]
da Just [3, 9]
.
Me di cuenta de que aplicando sequence
en List
s List
s da su producto cartesiano. ¿Puede alguien ayudarme a entender cómo y por qué sucede esto?
BTW, el último término es exactamente el mismo que el de la lista respectiva-expresión-comprensión [[x, y] | x <- [1,2], y <- [3,4]] - esto quizás aclare que rinda el Producto cartesiano. – phynfo