La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aspectos Avanzados de Haskell

Presentaciones similares


Presentación del tema: "Aspectos Avanzados de Haskell"— Transcripción de la presentación:

1 Aspectos Avanzados de Haskell

2 El concepto de variable
No existen variables ni asignaciones Las variables han sido reemplazadas por los parámetros Los parámetros son los valores de entrada que recibe una función Ejemplo: suma x = x + 5 x sería el parámetro. Ejemplo: suma x = x + 5 x sería el parámetro.

3 Tipos primitivos En haskell existen dos tipos:
Tipos básicos: cuyos valores se toman como primitivos, por ejemplo: Enteros, Flotantes, Caracteres y Booleanos. Tipos compuestos: cuyos valores se construyen utilizando otros tipos, por ejemplo: listas, funciones y tuplas.

4 Ambito Como en haskell no existen variables no se puede hablar de ámbito de variables, solo hablamos de parámetros. En el ámbito, los parámetros de una función son locales a la misma. Inclusive para funciones recursivas. Ejemplo: Ejemplo: f1 :: Int -> Int f1 a = a + 5 En este ejemplo el ámbito del parámetro “a” es local a la función f1.

5 Tiempo de vida En haskell no existen variables, como se menciono anteriormente, solo existen parámetros. Los espacios de memoria son desasignados cuando termina la función. Por ejemplo: Por ejemplo: suma :: Integer -> Integer -> Integer suma x y = x + y En este caso los parámetros “x” e “y” una vez evaluados en la función, el tiempo de vida de los parámetros termina.

6 Otros aspectos: Inferencia de tipos
El programador no está obligado a declarar el tipo de las expresiones. El compilador contiene un algoritmo que infiere el tipo de las expresiones. Si el programador declara el tipo de alguna expresión, el sistema chequea que el tipo declarado coincide con el tipo inferido.

7 Inferencia de tipos Los sistemas de inferencia de tipos permiten una mayor seguridad evitando errores de tipo en tiempo de ejecución y una mayor eficiencia, evitando realizar comprobaciones de tipos en tiempo de ejecución. Por ejemplo, si el programador declara la siguiente función: eligeSaludo x = if x then "adios" else "hola" El sistema infiere automáticamente que el tipo es eligeSaludo::Bool -> String y, si el programador hubiese declarado que tiene un tipo diferente, el sistema daría un error de tipos.


Descargar ppt "Aspectos Avanzados de Haskell"

Presentaciones similares


Anuncios Google