PARADIGMA FUNCIONAL
-
Upload
fredy-olaya -
Category
Technology
-
view
404 -
download
1
Transcript of PARADIGMA FUNCIONAL
![Page 1: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/1.jpg)
Yeison Ortiz
Geovany Muñoz
Luis Rodriguez
![Page 2: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/2.jpg)
Programacion Funcional
En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en la utilización de funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste con el estilo de programación imperativa, que enfatiza los cambios de estado.
![Page 3: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/3.jpg)
Historia
Sus orígenes provienen del Cálculo Lambda (o λ-cαlculo), una teoría matemática elaborada por Alonso Church como apoyo a sus estudios sobre Computabilidad. Un lenguaje funcional es, a grandes rasgos, un azúcar sintáctico del Cálculo Lambda.
![Page 4: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/4.jpg)
Calculo Lambda
Los orígenes teóricos del modelo funcional se remontan a la década del 30, mas precisamente al año 1934, cuando Alonso Church introdujo un modelo matemático de computación llamado lambda calculo. A pesar de que en esta época las computadoras aun no existían el lambda cálculo se puede considerar como el primer lenguaje funcional de la historia y sus fundamentos fueron la base de toda la teoría de la programación funcional y de los lenguajes funcionales desarrollados posteriormente.
![Page 5: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/5.jpg)
Programacion Declarativa
La característica fundamental del paradigma declarativo es que no existe la asignación ni el
cambio de estado en un programa. Las variables son identificadores de valores que no
cambian en toda la evaluación (como constantes definidas con un DEFINE de C). Sólo
existen valores y expresiones matemáticas que devuelven nuevos valores a partir de los
declarados.
![Page 6: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/6.jpg)
Lenguajes Funcionales
Programar en un lenguaje funcional significa construir funciones a partir de las ya existentes. Por lo tanto es importante conocer y comprender bien las funciones que conforman la base del lenguaje, así como las que ya fueron definidas previamente. De esta manera se pueden ir construyendo aplicaciones cada vez más complejas.
![Page 7: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/7.jpg)
Scheme
Scheme es un lenguaje compacto con un alto grado de abstracción, por lo cual resulta adecuado para cursos introductorios de computación, donde el énfasis está en la metodología de resolución de problemas. Scheme permite resolver problemas complejos con programas cortos y elegantes. De este modo, el lenguaje se convierte en un aliado para resolver problemas, no un problema más que resolver.
![Page 8: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/8.jpg)
Dualidad entre datos y programas
Los programas en Scheme son expresiones entre paréntesis (expresiones-S o S-expressions en inglés)
Una expresión es una lista de símbolosEsto permite tratar a los programas como datos y
viceversa utilizando la forma especial eval
![Page 9: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/9.jpg)
Las ventajas de tener un lenguaje tan simple son:
-Permite definiciones simples. -Facilita el estudio de aspectos computacionales.-Su carácter formal facilita la demostración de
propiedades.
Aplicaciones
-Compilación de lenguajes funcionales. -Especificar semántica a lenguajes imperativos.
-Formalismo para definir otras teorías.
![Page 10: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/10.jpg)
Paradigma FuncionalEn un sentido estricto, la programación funcional
define un programa como una función matemática que convierte unas entradas en unas salidas, sin ningún estado interno y ningún efecto lateral.
Otras características del paradigma funcional son las siguientes:
-Recursión-Funciones como tipos de datos primitivos-Uso de listas
![Page 11: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/11.jpg)
Funciones como datos de primer orden
Las funciones son datos de primer orden de los lenguajes funcionales.
Un dato de primer orden es aquel que:
-Puede ser asignado a una variable-Puede ser pasado como argumento a una función-Puede ser devuelto como resultado de una
invocación a una función-Puede ser parte de un tipo mayor
![Page 12: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/12.jpg)
Lenguaje LISP
LISP es el primer lenguaje de programación de alto nivel basado en el paradigma funcional Creado en 1958 por John McCarthy LISP es un lenguaje revolucionario e introduce nuevos conceptos de programación: funciones como objetos primitivos, funciones de orden superior, polimorfismo, listas, recursión, símbolos, homogeneidad de datos y programas.
![Page 13: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/13.jpg)
Funciones
una función es un grupo de instrucciones con un objetivo en particular y que se ejecuta al ser llamada desde otra función o procedimiento. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente). Las funciones pueden recibir datos desde afuera al ser llamadas a través de los parámetros y deben entregar un resultado. Se diferencian de los procedimientos porque estos no devuelven un resultado.
![Page 14: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/14.jpg)
Modelo de computación de sustitución
Un modelo computacional es un formalismo (conjunto de reglas) que definen el funcionamiento de un programa.
En de los lenguajes funcionales basados en la evaluación de expresiones, el modelo computacional define cuál va a ser el resultado de evaluar una determinada expresión.
El modelo de sustitución se basa en una versión simplificada de la regla de reducción del cálculo lambda.
![Page 15: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/15.jpg)
Orden normal vs. orden aplicativo
-Orden aplicativo: cuando se llega a una expresión primitiva se evalúa
-Orden normal: se realizan todas las sustituciones hasta que se tiene una larga expresión formada por expresiones primitivas; se evalúa entonces
-Scheme utiliza el orden aplicativo
![Page 16: PARADIGMA FUNCIONAL](https://reader035.fdocumento.com/reader035/viewer/2022080213/55a05e821a28ab522e8b4637/html5/thumbnails/16.jpg)
Gracias Por Su Atencion