SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Programación Funcional
PYTHON
Capitán Luis Tomás Wayar
-Minino de Cheshire, ¿podrías decirme, por favor, qué camino
debo seguir para salir de aquí?
-Esto depende en gran parte del sitio al que quieras llegar -dijo
el Gato.
-No me importa mucho el sitio... -dijo Alicia.
-Entonces tampoco importa mucho el camino que tomes - dijo
el Gato.
- ... siempre que llegue a alguna parte - añadió Alicia como
explicación.
- ¡Oh, siempre llegarás a alguna parte - aseguró el Gato -, si
caminas lo bastante!
Programación funcional
● Es un paradigma de programación que está basado en funciones.
● Python no es un lenguaje funcional puro, sin embargo incorpora esta
característica.
● Se entiende el concepto de función según su definición matemática y no
como simples subprogramas de los lenguajes imperativos.
“Lo que yo iba a decir - siguió el Dodo en tono
ofendido - es que el mejor modo para secarnos
sería una Carrera Loca.
Funciones de orden superior
Función que retorna una función Función que recibe una función
● Son funciones que reciben o devuelven funciones como parámetros.
● Operan sobre funciones, es decir el dominio o la imagen de estas funciones son funciones.
“Si conocieras al Tiempo tan bien como lo conozco yo - dijo el Sombrerero -, no
hablarías de matarlo. ¡El Tiempo es todo un personaje!”
Funciones Lambda
Son funciones anónimas, mínimas definidas en una línea, no
pueden contener bucles y no pueden utilizar la palabra clave
return para regresar un valor.
lambda <parámetros>:<expresión></expresión></parámetros>
“- ¿He perdido la razón?
- Me temo que sí. Estás demente. Pero te diré un
secreto. Las mejores personas lo están.”
Funciones de alto orden (map)
map: aplica una función sobre cada ítem de una lista y devuelve una lista
donde se le aplicó la función a cada elemento
nueva_lista = map(función, lista)
“Sí yo hiciera mi mundo todo sería un disparate. Porque
todo sería lo que no es. Y entonces al revés, lo que es, no
sería y lo que no podría ser si sería. ¿Entiendes?”
Funciones de alto orden (reduce)
reduce: reduce los ítems de una lista aplicando una función reductora,
devuelve un solo valor
valor = reduce(función, lista, (primero))
0 1 2
1
3
“- ¿Cuánto es
para siempre?
- A veces, solo un
segundo.”
Funciones de alto orden (filter)
filter: coteja que los elementos de una lista cumplan con cierta condición
expresada en una función boolean.
nueva_lista = filter(funcion, lista)
¡Qué extraño es todo hoy! ¡Y ayer sucedía todo
como siempre!... ¿Habré cambiado durante la
noche? Pero si no soy la misma, el asunto siguiente
es ¿quién soy? ¡Ay, ése es el gran misterio!
Funciones de alto orden (zip)
zip: función para reorganizar listas, admite varias listas, toma cada elemento
iesimo de cada lista y los une en una tupla, luego hace una lista con ellas
lista = zip(lista, lista)
"Desde que me caí por esa madriguera me han dicho qué tengo hacer y quién debo
ser. Me han encogido, aumentado, arañado y metido en una tetera, me han acusado
de ser Alicia y de no ser Alicia, pero éste es mi sueño, y yo decidiré cómo continúa"
Listas por comprensión
Es una construcción compacta que permite mapear y/o filtrar una lista en otra
aplicando una función a cada elemento de la lista, opcionalmente la lista original
puede ser filtrada
Crear una lista con los cuadrados de los dígitos:
Crear una lista con los cuadrados de los digitos pares
Alicia no tenía la menor idea de lo que era la latitud,
ni tampoco la longitud, pero le pareció bien decir estas
palabras tan bonitas e impresionantes.
Generadores
Son una clase especial de funciones que no generan una lista, sino una
secuencia de valores sobre el que iterar
Pueden ser:
● Métodos generadores: incluyen la palabra “yield” y se declaran como funciones
● Expresión generadora: se declara como listas por comprensión entre “()”
“Alicia se daba por lo general muy
buenos consejos a sí misma
(aunque rara vez los seguía).”
Decoradores
De modo que ella, sentada con los
ojos cerrados, casi se creía en el
país de las maravillas, aunque
sabía que sólo tenía que abrirlos
para que todo se transformara en
obtusa realidad.
• Son funciones que reciben una función como parámetro y devuelve otra
función.
• Cambian el comportamiento de un función, método o clase sin modificar su
código.
• Crea un “envoltura” alrededor de la función a decorar, esta envoltura y la
función original son la nueva función que obtenemos.
FIN
Muchas gracias
“Es una pobre clase de
memoria que sólo funciona
hacia atrás.”
“Y cuando termines de
hablar... ¡te callas!”

Más contenido relacionado

Último

serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...juanforero141
 
Especificación casos de uso del negocio
Especificación  casos de uso del negocioEspecificación  casos de uso del negocio
Especificación casos de uso del negocioMagemyl Egana
 
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxUPSE
 
El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)Samuel Solís Fuentes
 
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfUPSE
 
Tipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfTipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfCarlosSanchez452245
 
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxCiberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxcorreafrancoci00
 
Modelado de Casos de uso del negocio
Modelado de  Casos  de  uso  del negocioModelado de  Casos  de  uso  del negocio
Modelado de Casos de uso del negocioMagemyl Egana
 
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptxCIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptxalzabenjaminci00
 

Último (9)

serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
 
Especificación casos de uso del negocio
Especificación  casos de uso del negocioEspecificación  casos de uso del negocio
Especificación casos de uso del negocio
 
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
 
El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)
 
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
 
Tipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfTipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdf
 
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxCiberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
 
Modelado de Casos de uso del negocio
Modelado de  Casos  de  uso  del negocioModelado de  Casos  de  uso  del negocio
Modelado de Casos de uso del negocio
 
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptxCIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
 

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destacado (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Programación Funcional con Python

  • 1. Programación Funcional PYTHON Capitán Luis Tomás Wayar -Minino de Cheshire, ¿podrías decirme, por favor, qué camino debo seguir para salir de aquí? -Esto depende en gran parte del sitio al que quieras llegar -dijo el Gato. -No me importa mucho el sitio... -dijo Alicia. -Entonces tampoco importa mucho el camino que tomes - dijo el Gato. - ... siempre que llegue a alguna parte - añadió Alicia como explicación. - ¡Oh, siempre llegarás a alguna parte - aseguró el Gato -, si caminas lo bastante!
  • 2. Programación funcional ● Es un paradigma de programación que está basado en funciones. ● Python no es un lenguaje funcional puro, sin embargo incorpora esta característica. ● Se entiende el concepto de función según su definición matemática y no como simples subprogramas de los lenguajes imperativos. “Lo que yo iba a decir - siguió el Dodo en tono ofendido - es que el mejor modo para secarnos sería una Carrera Loca.
  • 3. Funciones de orden superior Función que retorna una función Función que recibe una función ● Son funciones que reciben o devuelven funciones como parámetros. ● Operan sobre funciones, es decir el dominio o la imagen de estas funciones son funciones. “Si conocieras al Tiempo tan bien como lo conozco yo - dijo el Sombrerero -, no hablarías de matarlo. ¡El Tiempo es todo un personaje!”
  • 4. Funciones Lambda Son funciones anónimas, mínimas definidas en una línea, no pueden contener bucles y no pueden utilizar la palabra clave return para regresar un valor. lambda <parámetros>:<expresión></expresión></parámetros> “- ¿He perdido la razón? - Me temo que sí. Estás demente. Pero te diré un secreto. Las mejores personas lo están.”
  • 5. Funciones de alto orden (map) map: aplica una función sobre cada ítem de una lista y devuelve una lista donde se le aplicó la función a cada elemento nueva_lista = map(función, lista) “Sí yo hiciera mi mundo todo sería un disparate. Porque todo sería lo que no es. Y entonces al revés, lo que es, no sería y lo que no podría ser si sería. ¿Entiendes?”
  • 6. Funciones de alto orden (reduce) reduce: reduce los ítems de una lista aplicando una función reductora, devuelve un solo valor valor = reduce(función, lista, (primero)) 0 1 2 1 3 “- ¿Cuánto es para siempre? - A veces, solo un segundo.”
  • 7. Funciones de alto orden (filter) filter: coteja que los elementos de una lista cumplan con cierta condición expresada en una función boolean. nueva_lista = filter(funcion, lista) ¡Qué extraño es todo hoy! ¡Y ayer sucedía todo como siempre!... ¿Habré cambiado durante la noche? Pero si no soy la misma, el asunto siguiente es ¿quién soy? ¡Ay, ése es el gran misterio!
  • 8. Funciones de alto orden (zip) zip: función para reorganizar listas, admite varias listas, toma cada elemento iesimo de cada lista y los une en una tupla, luego hace una lista con ellas lista = zip(lista, lista) "Desde que me caí por esa madriguera me han dicho qué tengo hacer y quién debo ser. Me han encogido, aumentado, arañado y metido en una tetera, me han acusado de ser Alicia y de no ser Alicia, pero éste es mi sueño, y yo decidiré cómo continúa"
  • 9. Listas por comprensión Es una construcción compacta que permite mapear y/o filtrar una lista en otra aplicando una función a cada elemento de la lista, opcionalmente la lista original puede ser filtrada Crear una lista con los cuadrados de los dígitos: Crear una lista con los cuadrados de los digitos pares Alicia no tenía la menor idea de lo que era la latitud, ni tampoco la longitud, pero le pareció bien decir estas palabras tan bonitas e impresionantes.
  • 10. Generadores Son una clase especial de funciones que no generan una lista, sino una secuencia de valores sobre el que iterar Pueden ser: ● Métodos generadores: incluyen la palabra “yield” y se declaran como funciones ● Expresión generadora: se declara como listas por comprensión entre “()” “Alicia se daba por lo general muy buenos consejos a sí misma (aunque rara vez los seguía).”
  • 11. Decoradores De modo que ella, sentada con los ojos cerrados, casi se creía en el país de las maravillas, aunque sabía que sólo tenía que abrirlos para que todo se transformara en obtusa realidad. • Son funciones que reciben una función como parámetro y devuelve otra función. • Cambian el comportamiento de un función, método o clase sin modificar su código. • Crea un “envoltura” alrededor de la función a decorar, esta envoltura y la función original son la nueva función que obtenemos.
  • 12. FIN Muchas gracias “Es una pobre clase de memoria que sólo funciona hacia atrás.” “Y cuando termines de hablar... ¡te callas!”