эквивалентность между аппликативным функтором и монадой
Люди говорят, что монады являются продолжением аппликативных функторов, но я этого не вижу. Давайте рассмотрим пример аппликативного функтора:(<*>) :: f(a->b) -> f a -> f b
[(+3)] <*> [2,3,4]
Теперь я также ожидаю, что могу сделать то же самое, что и монада, это означает, что я могу применить 2 параметра: контекст содержит функцию и другой контекст для получения контекста. Но для монады я не могу. Все, что мне нужно, это написать некрасивую функцию, подобную этой:
[2,3,4] >>= (\x->[x+3])
Да, конечно, вы можете сказать, что[(+3)]
эквивалентно[\x->(x+3)]
, Но, по крайней мере, эта функция в контексте.
Наконец, я не вижу здесь эквивалентности или расширения. Monad - это другой стиль, полезный в другой истории.
Извините за мое невежество.