SlideShare una empresa de Scribd logo
1 de 16
Yeison Ortiz 
Geovany Muñoz 
Luis Rodriguez
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.
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.
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.
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.
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.
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.
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ímbolos 
Esto permite tratar a los programas como datos y 
viceversa utilizando la forma especial eval
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.
Paradigma Funcional 
En 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
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
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.
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.
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.
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
Gracias Por Su Atencion

Más contenido relacionado

La actualidad más candente

LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONKathGon1
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCCCRiis
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Cuadro comparativo
Cuadro comparativo Cuadro comparativo
Cuadro comparativo Seba Briones
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++Rosbelia Balza
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Javamaeusogo
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 
Presentación pseudocódigo
Presentación pseudocódigoPresentación pseudocódigo
Presentación pseudocódigoStudent
 
Mapa conceptual de sistemas operativos
Mapa conceptual de sistemas operativosMapa conceptual de sistemas operativos
Mapa conceptual de sistemas operativosroberto cruz velasquez
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoriaMiguel Magaña
 

La actualidad más candente (20)

LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Cuadro comparativo
Cuadro comparativo Cuadro comparativo
Cuadro comparativo
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++
 
Uso y manejo de DFD - Una aproximación
Uso y manejo de DFD - Una aproximaciónUso y manejo de DFD - Una aproximación
Uso y manejo de DFD - Una aproximación
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Presentación pseudocódigo
Presentación pseudocódigoPresentación pseudocódigo
Presentación pseudocódigo
 
Mapa conceptual de sistemas operativos
Mapa conceptual de sistemas operativosMapa conceptual de sistemas operativos
Mapa conceptual de sistemas operativos
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoria
 
Exposición de Lenguajes de Programación
Exposición de Lenguajes de ProgramaciónExposición de Lenguajes de Programación
Exposición de Lenguajes de Programación
 

Similar a Programación funcional: Orígenes, características y lenguajes

Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónTrabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónEmmanuel Fontán
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónOscar Delgado
 
Clasificacion de los lenguajes de programacion
Clasificacion de los lenguajes de programacionClasificacion de los lenguajes de programacion
Clasificacion de los lenguajes de programacionAlberto Jacome
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónfarmero
 
Historia de clisp
Historia de clispHistoria de clisp
Historia de clispextasis30
 
Lenguajes De ProgramacióN
Lenguajes De ProgramacióNLenguajes De ProgramacióN
Lenguajes De ProgramacióNEduFigueroa
 
Mariana precesntacion 2
Mariana precesntacion 2Mariana precesntacion 2
Mariana precesntacion 2esveidi_27
 
franco lorentz word2
franco lorentz word2franco lorentz word2
franco lorentz word23xtremus
 
Lenguajes_de_Programacion
Lenguajes_de_ProgramacionLenguajes_de_Programacion
Lenguajes_de_Programacionlissilomelin
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncionalAshley Stronghold Witwicky
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2gabrielalija10
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONGabriel Alija
 
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISPSotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISPAyrton Adame
 

Similar a Programación funcional: Orígenes, características y lenguajes (20)

Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónTrabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Clasificacion de los lenguajes de programacion
Clasificacion de los lenguajes de programacionClasificacion de los lenguajes de programacion
Clasificacion de los lenguajes de programacion
 
Lenguajesprog
LenguajesprogLenguajesprog
Lenguajesprog
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Historia de clisp
Historia de clispHistoria de clisp
Historia de clisp
 
Lenguajes De ProgramacióN
Lenguajes De ProgramacióNLenguajes De ProgramacióN
Lenguajes De ProgramacióN
 
Cálculo proposicional y de predicados
Cálculo proposicional y de predicadosCálculo proposicional y de predicados
Cálculo proposicional y de predicados
 
Programacion Funcional
Programacion FuncionalProgramacion Funcional
Programacion Funcional
 
Taller 2 conceptualizacion
Taller 2 conceptualizacionTaller 2 conceptualizacion
Taller 2 conceptualizacion
 
Mariana precesntacion 2
Mariana precesntacion 2Mariana precesntacion 2
Mariana precesntacion 2
 
franco lorentz word2
franco lorentz word2franco lorentz word2
franco lorentz word2
 
Programa informático
Programa informáticoPrograma informático
Programa informático
 
Lenguajes_de_Programacion
Lenguajes_de_ProgramacionLenguajes_de_Programacion
Lenguajes_de_Programacion
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncional
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACION
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Correa correa juan_felipe
Correa correa juan_felipeCorrea correa juan_felipe
Correa correa juan_felipe
 
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISPSotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISP
 

Último

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 

Último (20)

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 

Programación funcional: Orígenes, características y lenguajes

  • 1. Yeison Ortiz Geovany Muñoz Luis Rodriguez
  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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ímbolos Esto permite tratar a los programas como datos y viceversa utilizando la forma especial eval
  • 9. 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.
  • 10. Paradigma Funcional En 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
  • 11. 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
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 15. 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
  • 16. Gracias Por Su Atencion