a equivalência entre o functor e a mônada do aplicativo
As pessoas dizem que as mônadas são uma extensão dos functores aplicativos, mas eu não vejo isso. Vamos dar um exemplo de functor aplicativo:(<*>) :: f(a->b) -> f a -> f b
[(+3)] <*> [2,3,4]
Agora, também espero poder fazer a mesma coisa que monad, isso significa que posso aplicar 2 parâmetros: um contexto contém uma função e outro contexto para obter um contexto. Mas para a mônada, não posso. Tudo que preciso é escrever uma função feia assim:
[2,3,4] >>= (\x->[x+3])
Sim, claro, você pode dizer isso[(+3)]
é equivalente a[\x->(x+3)]
. Mas pelo menos, essa função está no contexto.
Finalmente, não vejo a equivalência ou extensão aqui. Monad é um estilo diferente e útil em outra história.
Desculpe pela minha ignorância.