Я знаю, что могу использовать объединение, чтобы удалить первый уровень списка
join [["dog"]]
"output ["dog"]
Но почему не работает следующее
join $ (Just ["dog"])
got error:
Couldn't match type ‘[]’ with ‘Maybe’
Мы знаем, что Maybe
и []
являются монадой в Хаскеле,
join(Monad m)=> m(m a) -> m a
Maybe
является монадой
[]
является монадой
Что такоечто-то не так?
Мне кажется, что присоединиться только для монады того же типа, пожалуйста, исправьте меня, если я ошибаюсь.
Есть ли какая-либо функция, похожая на объединение для любых монад, таких какпример, который я привел выше?
Я знаю, что могу сделать это следующим образом
fromJust (Just ["dog"])
"output: ["dog"]
Но мне нужно знать только заранее.