Sunteți pe pagina 1din 16

Programacin Funcional

Materia: Programacin lgica y funcional Mtro.: Oscar Gonzlez Alumnos: Azucena Parra Becerra Cristian Omar Estrada Morales Rosa Brisehida Gonzlez Villagra Mayra Selene Sols Chvez

19/Marzo/2014
Ocotln Jal.

ndice
Introduccin
Objetivos Concepto matemtico de funcin

Bases de la programacin funcional


Evolucin de la programacin funcional Caractersticas de la programacin funcional.

Introduccin
Durante la parte de programacin funcional vamos a hablar sobre

Haskell. La programacin funcional est constituida mediante definicin de funciones puramente matemticas. Est basado en un modelo matemtico: el lambda-clculo. A diferencia de Prolog, el objeto bsico aqu es la funcin. Esta vez nos enfrentamos a un lenguaje tipado y polimrfico adems de poseer funciones de orden superior.

Objetivos del Tema


Entender el concepto de funcin desde el punto de

vista matemtico. Dar una visin general de la programacin funcional, desde sus bases y evolucin hasta sus caractersticas.

Concepto matemtico de funcin I


Una funcin establece una asociacin entre valores de

entrada y valores de salida. Ejemplos: Funcin doble: Asocia al valor 5 al valor de 10, al 6 al 12, Funcin capital: Asocia a Espaa el valor Madrid, a Italia la ciudad de Roma.

Concepto matemtico de funcin II


Funcin: regla de correspondencia en la que un

elemento de un conjunto origen(dominio), le corresponde un nico elemento de otro conjunto imagen(rango). Funcin doble: Dominio: nmeros enteros Rango: nmeros enteros Funcin capital: Dominio: pases del mundo Rango: ciudades del mundo.

Concepto matemtico de funcin


Aplicacin de una funcin: particularizacin de la regla de

correspondencia a un valor concreto de dominio que determina un valor concreto de la imagen. Notacin: f(x)= y F: nombre de la funcin X: argumento o entrada Y: resultado o salida. Ejemplo: Doble(5)=10 Capital(Espaa)= Madrid

Concepto matemtico de funcin


Existen funciones con notacin universal predefinida

que son representadas por un operador: suma, resta,. El argumento o entrada de una funcin puede provenir de la salida de otra aplicacin (misma funcin u otra) Composicin de funciones Ejemplos: Doble (doble(5))= 20 Doble (mayor(7,4))=14

Concepto matemtico de funcin


La definicin de funciones se puede dar por medio de : comprensin y extensin. Comprensin: ecuacin cuya parte izquierda la componen los argumento (entrada) y la parte derecha la representa la extensin algebraica de la operaciones que componen la funcin. Ejemplo: Funcin doble x= 2*x Extensin: conjunto de pares ordenados donde el primer elemento es el valor de conjunto origen y el segundo el del conjunto imagen. Ejemplo: Funcin capital Espaa = Madrid Italia = Roma

Bases de la Programacin Funcional


Tambin conocida como programacin declarativa

(junto con el paradigma lgico), su objetivo es describir los problemas mediante funciones matemticas puras sin efectos laterales. Los programas funcionales expresan mejor que hay que calcular, y no detallan tanto como realizar dicho calculo (como ocurre con los programas imperativos)

Bases de la Programacin Funcional


Programacin funcional: similar al uso de una hoja de

calculo o una calculadora: el usuario introduce una expresin inicial y el sistema la evala mediante un proceso de reduccin. Los programas funcionales se caracterizan por la propiedad de la transparencia referencial: el resultado devuelto por una funcin solo depende de los argumento que se le pasan en la llamada

Bases de la Programacin Funcional


Ejemplo (Programa Pascal con efectos laterales) PROGRAM ConEfectosLaterales; VAR estado: boolean; FUNCTION Efectos (n: interger); interger; BEGIN IF (estado) THEN Efectos := n ELSE Efectos := 2*n+1; Estado := NOT estado; END; (* Efectos *) BEGIN estado := TRUE; WriteLn (Efectos(1), , Efectos(1)); WriteLn (Efectos(2), , Efectos(2)); END

La Salida es la Siguiente: 1 3 2 5

Evolucin de la Programacin Funcional


Inicios: Calculo Lambda de Church (aos 30)
El primer lenguaje funcional desarrollado fue LISP

(1958), que se aplico en el area de Inteligencia Artificial. Es la base del actual Scheme, que no es puramente funcional. Aos 60 y 70 ISWIM, FP, Y ML KRC y Miranda, Haskell, Hope, Wadler, CAML, etc. Haskell: nace a partir de la conferencia FPCA87 y Fue desarrollado por las universidades de Yale y Glasgow, con objeto de reunir todas aquellas caracteristicas fundamentales del paradigma funcional.

Caractersticas de la Programacin Funcional


Las principales caractersticas de los lenguajes

funcionales son: -funciones de orden superior -tipado fuerte y esttico -inferencia de tipos -polimorfismo -orden de reduccin normal y evaluacin perezosa.

Funciones de orden superior alto nivel de abstraccin


Funciones tratadas como valores de primera clase

Almacenadas en estructuras de datos, pasadas como argumentos y devueltas como resultados. Ejemplo:

Tipado esttico

deteccin de errores en

tiempo de compilacin. Fuertemente tipado El programador no esta obligado a declarar el tipo de la expresiones El compilador, mediante un algoritmo, infiere el tipo de las expresiones. Si se declara el tipo de una expresin el compilador los chequea.

S-ar putea să vă placă și