Práctico 7, ej 1 c)

Práctico 7, ej 1 c)

de Enrique Mathias Vazquez Riveiro -
Número de respuestas: 2

Buenos días. En la letra nos dan la implementación con do:

baz mf my x = do f <- mf 

                             y <- my 

                             Just (f x y)


Cuando quiero implementar esta función me da error. ¿Es necesario agregar return(Just (f x y)), no?

Consulto por el tipo, capaz de ahí viene el error: 

baz :: Monad m => m ( a-> b -> c) -> m b -> a -> m (Maybe c) 

Gracias

En respuesta a Enrique Mathias Vazquez Riveiro

Re: Práctico 7, ej 1 c)

de Marcos Viera - InCo -
Hola,

Esa definición compila sin problemas. No es necesario agregar el return, porque Maybe es una mónada y Just es justamente la implementación de return para ella.
En este caso ya queda definida cuál es la mónada, por lo que no vas a tener baz :: Monad m => ...

saludos