Está en la página 1de 6

Paradigmas y Lenguajes

Apunte de Ctedra Unidad III Prctica


Universidad Nacional de La Rioja Lic. Sebastin Torralba Lic. Mnica Gimnez

Contenido
El Lenguaje Haskell ....................................................................................................................... 2 Elementos del Lenguajes............................................................................................................... 2 Caractersticas: .......................................................................................................................... 2 Estructura del Programa: ........................................................................................................... 2 Funciones: ................................................................................................................................. 2 Sintaxis de una Funcin: .........................................................................................................3 Declaracin ............................................................................................................................3 Cuerpo....................................................................................................................................3 Tipo de Datos: ............................................................................................................................3 Operadores: .............................................................................................................................. 4 Ejemplos Vistos en Clase ............................................................................................................... 4

Paradigmas y Lenguajes

Bolilla 3

Pagina 1

El Lenguaje Haskell
Haskell es un lenguaje de programacin perteneciente al paradigma Declarativo Funcional, el cual consiste en la expresin de funciones, las cuales se ejecutaran tomando el o los argumentos y retornara un resultado. Por ejemplo en un lenguaje imperativo la funcin matemtica f(x)=2x+2, se resolver como una secuencia de pasos, en cambio en el declarativo se evaluara la expresin f(x).
Imperativo Declarativo Funcional
F::int->int F::x=2*x +1

F(x)=2x+2

Int x; Int resultado; Resultado=2*x+2

Lo ms cercano a este paradigma que utilizamos en nuestra vida diaria son las frmulas de las Hojas Calculo. Para las clases prcticas se utilizara WinHugh.

Elementos del Lenguajes


Caractersticas:
Conciso: Debido a la naturaleza de alto nivel del paradigma funcional, los programas escritos en Haskell son mucho ms concisos que en otros lenguajes, la sintaxis de Haskell diseada para ello, en particular por tener pocos keyworks (palabaras reservadas) para escribir las formulas, y al permitir el sangrado para difinir el identado del programa. Esto hace que frecuentemente los programas escritos en Haskell se muchisimo mas cortos que los mismos escritos con lenguajes de otros paradigmas. Fuertemente Tipado: El hecho que todas sus variables deben tener declarado el tipo de las mismas, deviene en un cdigo menos propenso a errores. Soporta el Polimorfismo y Sobrecarga de Funciones Reutilizacin de Cdigo Permite Recursin

Estructura del Programa:


Los programas en Haskell estn separados en mdulos, dichos mdulos contienen una coleccin de declaraciones de funciones necesarias para su funcionamiento su extensin por defecto es .hs .

Funciones:
Una funciones es una relacin o procedimiento que recibe argumentos para procesarlos y producir un resultado nico, ciertas funciones matemticas devuelven mas de una valor, en Paradigmas y Lenguajes Bolilla 3 Pagina 2

otras palabras se define una ecuacin formada por el nombre de la funcin, los tipos de datos de los argumentos y el cuerpo que especifica como realizara el calculo a partir del valor los argumentos. Ejemplo de funcin Incremental: f(x)=x+1 En Haskell seria asi: Incremental :: Int -> Int Incremental x=x+1 Sintaxis de una Funcin: La funcin consta de dos partes: Su declaracin (o cabeza) y su cuerpo.

Declaracin

Nombre_de_la_funcion :: Tipo_de_dato -> Tipo_de_dato (argumento) (resultado) En este punto no es necesario declarar el nombre de las variables a utilizar solo su tipo de dato. Nombre_de_la_funcion variable_retorno= expresin

Cuerpo

Tipo de Datos:
Tipos de Datos Primitivos o Char: caracteres a,A,1,- o String: cadena de Caracteres Alumnos o Int/Integer: entero de 32 bit con signo -1000,2,200 o Float/Double: Coma flotante -1.44,22.456

Cuando definamos las variables dentro de las funciones las mismas deben ser en minsculas. Tipos de Datos Compuestos o Listas: coleccin de elementos del mismo tipo separados por coma. Se representan con corchetes. [1,3,4,5,6] o Funciones para el manejo de listas

head [1, 2, 3, 4, 5] resultado 1 retorna el primer valor de la lista tail [1, 2, 3, 4, 5] resultado [2, 3, 4, 5] retona un lista de todos los valores salvo

el primero take 3 [1, 2, 3, 4, 5] resultado [1, 2, 3] retorna una lista con los primeros n valores drop 3 [1, 2, 3, 4, 5] resultado [4, 5] retorna una lista con el resto de los valores seleccionados length [2, 4, 5] resultado 3 retorna el tamao de la lista

Paradigmas y Lenguajes

Bolilla 3

Pagina 3

reverse [1, 2, 3, 4, 5] resultado [5, 4, 3, 2, 1] retorna una lista con los valores

invertidos

Operadores:
Matematicos: o + suma o resta o * multiplicacin o / divisin o ^ potencia Logicos: o && And o || Or o < Menor o <= Menor o Igual o == Igual o /= Distinto o >= Mayor o Igual o > Mayor

Ejemplos Vistos en Clase


F(x)=x+ 1 F(x)= x^2 Incremental :: Int -> Int Incremental x = x +1 Potencia :: Double -> Double Potencia x = x*x Potencia_1 :: Int -> Int Pontecia_1 x = x^2 Potencia :: Double -> Double -> Double Potencia x y= x^y Sumatoria :: [Int] -> Int Sumatoria [] = 0 Bolilla 3 Pagina 4

F(x,y)=x^y

Sumatoria de los Valores

Paradigmas y Lenguajes

de una Lista Eleva al cuadrado todos los valores de la lista Ordena de mayor a menor

Sumatoria (x:e) = x + sumatoria e cuadrados::[Int]->[Int] cuadrados [ ] = [ ] cuadrados (x:l) = [x^2 | x <- l]

mayor::[Int]->Int mayor (x:xs) | x > mayor(xs) = x | otherwise = mayor(xs)

Paradigmas y Lenguajes

Bolilla 3

Pagina 5

También podría gustarte