Tratamiento de errores

Tratamiento de errores

de Sebastian Guerrero Font -
Número de respuestas: 1

Hola, estaba viendo la pdf del tema de errores y me queda una duda de que quieren decir algunas funciones que aparecen definidos sus tipos nomas.

En la parte de Maybe, las funciones que dicen fromJust, fromMaybe, maybe

Tengo alguna interpretacion que seria:
fromJust, devuelve el dato interno del maybe si es un Just, sino supongo que se tratara como un error de algun tipo con algun metodo visto...

fromMaybe: como la anterior pero recibiendo un valor para devolver en caso de que el Maybe sea un Nothing

maybe: esta parece similar a la anterior, recibe un b para devolver en caso de que el Maybe a que recibe sea Nothing, una funcion que va de a a b y un Mabybe a. Asi que supongo que desmpaqueta el a y le aplica la funcion si puede y si no devuelve el b ingresado.

Para saber si era esa la idea nomas, gracias

En respuesta a Sebastian Guerrero Font

Re: Tratamiento de errores

de Marcos Viera - InCo -

Hola, estás bastante acertado con tus interpretaciones.


- fromJust, retorna el dato interno si es un Just y sino se genera un error en tiempo de ejecución. Es una función parcial.

Ejemplos:

Prelude Data.Maybe> fromJust (Just 9)
9
Prelude Data.Maybe> fromJust Nothing
*** Exception: Maybe.fromJust: Nothing


- fromMaybe, es como decís. Ejemplos:

Prelude Data.Maybe> fromMaybe 8 (Just 6)
6
Prelude Data.Maybe> fromMaybe 8 Nothing
8


- maybe, es como vos decís, vendría a ser el "fold de Maybe", dado que sustituye los constructores por las funciones que se pasan. Ejemplos

Prelude Data.Maybe> maybe 0 (+ 2) (Just 4)
6
Prelude Data.Maybe> maybe 0 (+ 2) Nothing
0


saludos