SlideShare una empresa de Scribd logo
Bondades de la Programación Funcional
Santiago Alfonso Casallas, Cod. 20132020081
Universidad Distrital Francisco José de Caldas
El siguiente documento consta de una investigación del paradigma “Programación Funcional”, mostrando un
poco de su surgimiento y su evolución para así evaluar sus ventajas o bondades más destacables que la hacen en
una opción de desarrollo de software importante.
¿Qué es la Programación Funcional?
La programación funcional es la implementación práctica de las ideas de Alonzo Church. No todas las ideas del
cálculo lambda se implementan en la práctica porque el cálculo lambda no fue diseñado para trabajar bajo
limitaciones físicas. Por tanto, como en la programación orientada a objetos, la programación funcional es un
conjunto de ideas, no un conjunto estricto de reglas. Hay muchos lenguajes de programación funcional, y la
mayoría hacen las cosas de formas muy diferentes entre sí.
El cálculo lambda fue creado para investigar problemas relacionados con cálculo. La programación funcional,
por tanto, trata principalmente con cálculo, y, ¡sorpresa!, lo hace mediante funciones. La función es la unidad
básica en programación funcional. Las funciones son usadas para prácticamente todo, aun para los cálculos más
simples. Hasta las variables son reemplazadas con funciones. En programación funcional las variables son
simplemente accesos directos a expresiones (para no tener que escribir todo en una misma línea).
Como tal, permite incorporar los componentes de especificación y programación en las tareas de solución
automática de problemas.
Bondades de la Programación Funcional
Entre las ventajas que suelen citarse de usar un paradigma funcional en la programación de
computadoras, están las siguientes:
 Ausencia de efectos colaterales
 Proceso de depuración menos
problemático
 Pruebas de unidades más confiables
 Mayor facilidad para la ejecución
concurrente
No puedes modificar los símbolos que ya tienen un valor, y ninguna función puede modificar un valor fuera de
su ámbito para ser usado por otra función (a diferencia de un miembro de clase o una variable global). Eso
significa que el único efecto de evaluar una función es su valor de retorno y que la única cosa que afecta el
valor de retorno de la función son sus argumentos.
Eso es el sueño de todo probador de unidades. Puedes probar cada función de tu programa preocupándote
únicamente por sus argumentos. No hay que preocuparse por llamar las funciones en un orden correcto, o
configurar apropiadamente un escenario basado en estados externos.
Si un programa funcional no trabaja como se esperaría, depurarlo es cosa fácil. El problema se repetirá siempre,
pues un programa funcional no depende de lo que ocurra antes o después en otra parte que no sea la función
misma. En un programa imperativo, un problema puede aparecer algunas veces y otras no.
Al examinar la pila verás los argumentos pasados a las funciones y sus valores de retorno. En el momento en
que algún valor de retorno no tenga sentido, pasas a examinar la función implicada. ¡Repites este proceso
recursivamente hasta llegar a la fuente del problema.
Un programa funcional está listo para ejecución concurrente sin ningun tipo de adaptación. No necesitas
preocuparte por condiciones de carrera o bloqueos mutuos, ¡porque no usas bloqueos! Si ninguna pieza de datos
en un programa funcional es modificada dos veces en el mismo hilo de ejecución, mucho menos en hilos
diferentes. Eso significa que puedes agregar hilos a tu aplicación, ¡libre de los problemas que plagan a las
aplicaciones concurrentes en los programas imperativos.
Una característica interesante de los lenguajes funcionales es que se puede razonar sobre ellos
matemáticamente. Dado que un lenguaje funcional es simplemente una implementación de un sistema formal,
todas las operaciones matemáticas que pueden hacerse sobre papel también aplicarán a los programas escritos
en dicho lenguaje.
Existen otras bondades o ventajas de la Programación Funcional, pero las mencionadas anteriormente son las
más importantes.
A continuación se muestra una tabla comparativa con el enfoque del “Paradigma Imperativo” o Programación
Orientada a Objetos.

Más contenido relacionado

DOCX
tipos de pruebas
PPT
Unidad 2.3 Prueba De Programas
PDF
Mapa conseptual tipos de pruebas.
PPTX
Modelos de desarrollo de software - Marlon Marcano
PPTX
prueba de aplicaciones convencionales
PPT
Prueba software orientado a objetos
PPTX
Pruebas unitarias 7mo -b
PPT
Validacion Y Verificacion
tipos de pruebas
Unidad 2.3 Prueba De Programas
Mapa conseptual tipos de pruebas.
Modelos de desarrollo de software - Marlon Marcano
prueba de aplicaciones convencionales
Prueba software orientado a objetos
Pruebas unitarias 7mo -b
Validacion Y Verificacion

La actualidad más candente (20)

PPTX
Modelo de proceso especializado
PPTX
Resolver problemas con_una_computadora
PDF
Paradigmas de programación y un vistazo a lo funcional (Cuarta meetup Scala P...
PPTX
Clase swing
PPTX
Caja blanca
PDF
Pruebas unitarias
PPTX
Presentación1
PPTX
Presentacin1 150128161223-conversion-gate01
PPTX
ALGORITMOS
PPTX
Otros tipos de pruebas
PPT
Test unitarios
PPTX
Prueba De La Estructura De Control
PPTX
Software caja negra y caja blanca
PPT
Pruebas de Software
PPT
Fase De Pruebas Angel Chucho
PPTX
Identificacion planteamiento de problemas
PPT
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
PPSX
Clase 1 algoritmos
Modelo de proceso especializado
Resolver problemas con_una_computadora
Paradigmas de programación y un vistazo a lo funcional (Cuarta meetup Scala P...
Clase swing
Caja blanca
Pruebas unitarias
Presentación1
Presentacin1 150128161223-conversion-gate01
ALGORITMOS
Otros tipos de pruebas
Test unitarios
Prueba De La Estructura De Control
Software caja negra y caja blanca
Pruebas de Software
Fase De Pruebas Angel Chucho
Identificacion planteamiento de problemas
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Clase 1 algoritmos
Publicidad

Destacado (13)

DOCX
ADARSH RESUME
PPSX
Oñatemales andres g7
PDF
夢想之鄒的一封信及企劃書
DOCX
PPTX
Valutazione della Qualità dei Servizi - The Space Cinema
PDF
CEO World - Top CIOs To Follow (2014)
PDF
Informe asi
PPTX
Davinson diapositivas
PPTX
Tecnologias Digitais e Flipped Classroom
PPTX
PPTX
Ley Organica del Sistema de Seguridad Social
PPTX
Ventajas y desventajas de los mircroorganismos y sanidad animal
PDF
Ek2016 app brochure-en-uk
ADARSH RESUME
Oñatemales andres g7
夢想之鄒的一封信及企劃書
Valutazione della Qualità dei Servizi - The Space Cinema
CEO World - Top CIOs To Follow (2014)
Informe asi
Davinson diapositivas
Tecnologias Digitais e Flipped Classroom
Ley Organica del Sistema de Seguridad Social
Ventajas y desventajas de los mircroorganismos y sanidad animal
Ek2016 app brochure-en-uk
Publicidad

Similar a Paper programacion funcional bondades (20)

PDF
Introducción a la programación funcional
PPTX
Programacion Funcional
PDF
Programación funcional Core Upgrade Febrero 2018 (ejemplos con Javascript)
PDF
Programación funcional, una nueva forma de resolver problemas.
PPTX
Programación Funcional C#
PDF
Object Oriented Programming vs Functional Programming - Valencia.rb
PPT
PARADIGMA FUNCIONAL
PDF
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
PDF
¿Qué demonios es la programación funcional?
PDF
Introduccion a haskell
DOCX
Paradigmas de programación
PDF
Tema 1: Introducción a la programación funcional.
PPTX
Programación funcional
PDF
Prueba de Caja Blanca
PDF
lazy evaluation parte2 - temas avanzado.pdf
PPTX
lenguaje y herramientas
PDF
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
PDF
progFuncional-Slides.pdf
Introducción a la programación funcional
Programacion Funcional
Programación funcional Core Upgrade Febrero 2018 (ejemplos con Javascript)
Programación funcional, una nueva forma de resolver problemas.
Programación Funcional C#
Object Oriented Programming vs Functional Programming - Valencia.rb
PARADIGMA FUNCIONAL
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
¿Qué demonios es la programación funcional?
Introduccion a haskell
Paradigmas de programación
Tema 1: Introducción a la programación funcional.
Programación funcional
Prueba de Caja Blanca
lazy evaluation parte2 - temas avanzado.pdf
lenguaje y herramientas
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
progFuncional-Slides.pdf

Último (20)

PDF
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
PDF
Oficio SEC 293416 Comision Investigadora
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
S15 Protección de redes electricas 2025-1_removed.pdf
PPTX
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
PDF
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
PDF
MATRIZ IDENTIFICACIÓN EVALUACION CONTROL PRL.pdf
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
DOCX
Cumplimiento normativo y realidad laboral
PDF
1132-2018 espectrofotometro uv visible.pdf
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PDF
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
PPTX
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
PDF
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
PDF
Electricidad-Estatica-Peligros-Prevencion.pdf
PDF
Oficio SEC de formulación de cargos por el apagón del 25F en contra del CEN
PPTX
Gestion de seguridad y salud ocupacional.pptx
PDF
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
Oficio SEC 293416 Comision Investigadora
Sustancias Peligrosas de empresas para su correcto manejo
S15 Protección de redes electricas 2025-1_removed.pdf
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
MATRIZ IDENTIFICACIÓN EVALUACION CONTROL PRL.pdf
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
Cumplimiento normativo y realidad laboral
1132-2018 espectrofotometro uv visible.pdf
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
Electricidad-Estatica-Peligros-Prevencion.pdf
Oficio SEC de formulación de cargos por el apagón del 25F en contra del CEN
Gestion de seguridad y salud ocupacional.pptx
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
MARITIMO Y LESGILACION DEL MACO TRANSPORTE

Paper programacion funcional bondades

  • 1. Bondades de la Programación Funcional Santiago Alfonso Casallas, Cod. 20132020081 Universidad Distrital Francisco José de Caldas El siguiente documento consta de una investigación del paradigma “Programación Funcional”, mostrando un poco de su surgimiento y su evolución para así evaluar sus ventajas o bondades más destacables que la hacen en una opción de desarrollo de software importante. ¿Qué es la Programación Funcional? La programación funcional es la implementación práctica de las ideas de Alonzo Church. No todas las ideas del cálculo lambda se implementan en la práctica porque el cálculo lambda no fue diseñado para trabajar bajo limitaciones físicas. Por tanto, como en la programación orientada a objetos, la programación funcional es un conjunto de ideas, no un conjunto estricto de reglas. Hay muchos lenguajes de programación funcional, y la mayoría hacen las cosas de formas muy diferentes entre sí. El cálculo lambda fue creado para investigar problemas relacionados con cálculo. La programación funcional, por tanto, trata principalmente con cálculo, y, ¡sorpresa!, lo hace mediante funciones. La función es la unidad básica en programación funcional. Las funciones son usadas para prácticamente todo, aun para los cálculos más simples. Hasta las variables son reemplazadas con funciones. En programación funcional las variables son simplemente accesos directos a expresiones (para no tener que escribir todo en una misma línea). Como tal, permite incorporar los componentes de especificación y programación en las tareas de solución automática de problemas. Bondades de la Programación Funcional Entre las ventajas que suelen citarse de usar un paradigma funcional en la programación de computadoras, están las siguientes:  Ausencia de efectos colaterales  Proceso de depuración menos problemático  Pruebas de unidades más confiables  Mayor facilidad para la ejecución concurrente No puedes modificar los símbolos que ya tienen un valor, y ninguna función puede modificar un valor fuera de su ámbito para ser usado por otra función (a diferencia de un miembro de clase o una variable global). Eso significa que el único efecto de evaluar una función es su valor de retorno y que la única cosa que afecta el valor de retorno de la función son sus argumentos. Eso es el sueño de todo probador de unidades. Puedes probar cada función de tu programa preocupándote únicamente por sus argumentos. No hay que preocuparse por llamar las funciones en un orden correcto, o configurar apropiadamente un escenario basado en estados externos.
  • 2. Si un programa funcional no trabaja como se esperaría, depurarlo es cosa fácil. El problema se repetirá siempre, pues un programa funcional no depende de lo que ocurra antes o después en otra parte que no sea la función misma. En un programa imperativo, un problema puede aparecer algunas veces y otras no. Al examinar la pila verás los argumentos pasados a las funciones y sus valores de retorno. En el momento en que algún valor de retorno no tenga sentido, pasas a examinar la función implicada. ¡Repites este proceso recursivamente hasta llegar a la fuente del problema. Un programa funcional está listo para ejecución concurrente sin ningun tipo de adaptación. No necesitas preocuparte por condiciones de carrera o bloqueos mutuos, ¡porque no usas bloqueos! Si ninguna pieza de datos en un programa funcional es modificada dos veces en el mismo hilo de ejecución, mucho menos en hilos diferentes. Eso significa que puedes agregar hilos a tu aplicación, ¡libre de los problemas que plagan a las aplicaciones concurrentes en los programas imperativos. Una característica interesante de los lenguajes funcionales es que se puede razonar sobre ellos matemáticamente. Dado que un lenguaje funcional es simplemente una implementación de un sistema formal, todas las operaciones matemáticas que pueden hacerse sobre papel también aplicarán a los programas escritos en dicho lenguaje. Existen otras bondades o ventajas de la Programación Funcional, pero las mencionadas anteriormente son las más importantes. A continuación se muestra una tabla comparativa con el enfoque del “Paradigma Imperativo” o Programación Orientada a Objetos.