Мой вопрос касается функции sequence
в Prelude
, подпись которой следующая:
sequence :: Monad m => [m a] -> m [a]
Я понимаю, как эта функция работает для List
из Maybe
s. Например, применение последовательности
к [Just 3, Just 9]
дает Just [3, 9]
.
Я заметил, что применение последовательности
в List
из List
дает его декартово произведение. Может кто-нибудь, пожалуйста, помогите мне понять, как / почему это происходит?