Warum die Anwendung von `Sequenz` auf die Liste der Listen führen die Berechnung von deren Kartesisches Produkt?

Meine Frage ist über die sequence Funktion in Prelude, die Signatur ist wie folgt:

sequence :: Monad m => [m a] -> m [a]

Verstehe ich, wie diese Funktion arbeitet für List von Maybes. Zum Beispiel die Anwendung sequence auf [Just 3, Just 9] gibt Just [3, 9].

Bemerkte ich, dass die Anwendung sequence auf List von Lists gibt deren Kartesisches Produkt. Kann mir bitte jemand helfen zu verstehen, wie/warum das passiert?

Schreibe einen Kommentar