La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Subrutinas.

Presentaciones similares


Presentación del tema: "Subrutinas."— Transcripción de la presentación:

1 Subrutinas

2 Subrutinas Haskell en las funciones utiliza parámetros y estos son pasados por valor. Por ejemplo: cuadrado :: Integer -> Integer  cuadrado x = x*x También existen las Funciones de Orden Superior, estas permiten que las funciones sean tratadas como parametros que son pasados como argumentos de funciones y que sean devueltas como resultados. La idea de Funciones de Orden Superior es equivalente a subrutinas.

3 Funciones de Orden Superior
Funciones que reciben como argumento una función o que devuelven una función como resultado

4 Función como argumento:
dosveces :: (Integer -> Integer) -> Integer -> Integer dosveces f x = f (f x ) inc :: Integer -> Integer inc x = x + 1 dec :: Integer -> Integer dec x = x - 1

5 Ejemplo: En este ejemplo, la función sumara dos veces la cantidad de 1 al parámetro ingresado, en la parte “dosveces :: (Integer -> Integer)” se especifica que la el primer parámetro es una función que tiene un ingreso como Integer y como salida otro Integer, luego el Integer siguiente que esta fuera del paréntesis es el segundo parámetro que se ingresa y este no es función, y por último el ultimo Integer es el dato de salida. En la parte “dosveces f x = f (f x)” se ejecuta la siguiente acción: f es la función que se quiere ejecutar y x es el parámetro para tratar, en la parte f (f x) primero se ejecuta el paréntesis, entonces ingresas la función f y el parámetro x, en este ejemplo se ejemplifican dos funciones “inc” y “dec” la cual una suma 1 y la otra resta 1 respectivamente, como funciona: se puede ingresar de la siguiente forma “dosveces inc 5” aquí se pasan los parámetros a las funciones correspondientes, en este caso, ejecutará la función dosveces e ingresará la función inc con el parámetro 5, realizara los procesos correspondientes y el resultado será 7, el cual es un tipo de retorno Integer.

6 Función como resultado:
f2 :: Int -> (Int -> Int) f2 x y = y + x En este ejemplo, el tipo de paso de parámetros son: los datos ingresados a “x” e “y” y estos son usados en la función y + x, entonces el tipo de retorno de la función f2 es la función x y que es de tipo (Int -> Int) Se llama la función f2 y se le dan los dos parámetros, por ejemplo: Ingresamos “f2 5 3” y resulta 8.

7 Función como argumento y como resultado:
f3 :: (Int -> Int) -> (Int -> Int) f3 g y = 2 * g (y+1) uno :: Int -> Int uno a = a + 30 En este ejemplo, el tipo de paso de parámetros son: los datos ingresados a “g” e “y”, en el cual g es una función del tipo (Int -> Int) y estos son usados en la función f3, entonces el tipo de retorno de la función f3 es la función “uno” que es de tipo (Int -> Int). Se llama a la función f3, primero se le ingresan una función y luego un parámetro, por ejemplo: “f3 uno 1” luego llama a la función uno dentro de la función f3 y le da el parámetro de 1” luego el resultado es 64. En haskell los programas, reciben valores de distinto tipo según sea la función, y cada función trabaja con esos valores, entregando el resultado ya procesado.

8 Manejo de Excepciones

9 Manejo de Excepciones Manejo de Excepciones
El sistema de incluye un mecanismo simple de control de excepciones. Cualquier operación de Entrada/Salida podría lanzar una excepción en lugar de devolver un resultado. Las excepciones se representan como valores de tipo IOError. El tipo IOError representa todas las posibles excepciones que pueden ocurrir al ejecutar operaciones.

10 Ejemplo: dividir :: Float -> Float -> Float
dividir x 0 = error "Division por cero" dividir x y = x / y En el siguiente programa, al ingresar dos valores, por ejemplo “3” y “0” lanzará por pantalla un error, “división por cero”, que es usada gracias a la función “error”.


Descargar ppt "Subrutinas."

Presentaciones similares


Anuncios Google