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