SlideShare una empresa de Scribd logo
1 de 33
Funcional* para trollear
PyconES 2015 - Valencia
Alejandro E Brito Monedero
@ae_bm
Advertencia
Me he leído el CoC pero seguramente se me
escape algo que pueda ser políticamente
incorrecto.
En mi defensa, el Gangsta Rap, los videojuegos,
el metal y el stand up comedy de genios como
Richard Pryor y George Carlin.
Sobre la monadas, functores y otros temas fancy,
esta no es la charla ni la conferencia JFYI ;-)
El protocolo
Nombre Alejandro Brito Monedero
Insultos @ae_bm
Como estoy aquí No se ^_^
Ocupación Sysadmin / DevOps / … /
Buzzword
Paradero Madrid DevOps, Python Madrid,
Postgres España, ...
● Código que cabe en tu
memoria a corto plazo =>
● Mantenible
● Capacidad de
composición
● Trollear no usando
programación imperativa
Alonzo Churh
Cálculo
Python no es un lenguaje
funcional:
● Mutabilidad por defecto
● Iteración > recursividad
● Tipos
● ...
● Reducir los side
effects
● Reducir la necesidad
de mutar los datos
● Funciones como
ciudadanos de primer
orden
● Hacer funciones que
se puedan componer
● Aprovechar el
lazyness
Pensar en lineas de ensamblaje o
comando_1 | comando_2 | …
si has usado un poco *NIX
Hora de ver algo de python
l = []
for e in range(100):
if e % 2 == 0:
l.append(pow(e, 2))
for, if → map y filter
l = map(lambda x: pow(x, 2),
filter(lambda x: x % 2 == 0,
range(100)))
for, if → map y filter
* en python 3 l no es una lista
l = [pow(x, 2)
for x in range(100)
if x % 2 == 0]
for, if → list comprehension
a = [0, 2, 4, 6]
b = [1, 3, 5]
c = []
while a and b:
c.append((a.pop(0), b.pop(0)))
c == [(0, 1), (2, 3), (4, 5)]
zip a.k.a cremallera
a = [0, 2, 4, 6]
b = [1, 3, 5]
c = zip(a, b)
c == [(0, 1), (2, 3), (4, 5)]
zip a.k.a cremallera
Hablemos de la memoria y el regalo del laziness
with open('genoma.txt', 'rb') as f:
read_data = f.read()
...
Out of memory: kill process xxxx
Killed process xxxx (python)
Mejor es iterar sobre
cada elemento.
Siendo el elemento
creado justo antes de
ser utilizado
Python 2
range() → xrange()
map() → itertools.imap()
filter() → itertools.ifilter()
zip() → itertools.izip()
Python 2 y Python 3
[x for x in iterable if f(x)] →
(x for x in interable if f(x))
¿La única forma de crear iteradores es usar OOP
e implementar la interfaz iterador?
Generators
def fancy_generator():
yield "I"
yield "am"
yield "fancy"
' '.join(fancy_generator()) == 'I am fancy'
La hora de las baterías ha llegado
itertools
Inspirados en construcciones de lenguajes tan
populares como APL, Haskell y SML
Eficientes en el uso de memoria (recordar los
streams)
https://docs.python.org/2/library/itertools.html
https://docs.python.org/3/library/itertools.html
itertools
cycle('abc') → 'a' 'b' 'c' 'a' 'b' 'c' 'a' ...
repeat('¿cuanto falta?') → '¿cuanto falta?' '¿cuando falta?' ...
chain([1,2,3], [4, 5, 6]) → 1 2 3 4 5 6
dropwhile(lambda x: x<5, [1,4,6,4,1]) → 6 4 1
takewhile(lambda x: x<5, [1,4,6,4,1]) → 1 4
Generadores combinatorios
...
functools
Funciones de orden superior a.k.a funciones que
reciben y/o retornan funciones
Decoradores
https://docs.python.org/2/library/functools.html
https://docs.python.org/3/library/functools.html
functools
reduce(operator.add, [1, 2, 3], -6) → (((-6 + 1) + 2) + 3)
partial(): generar una función con argumentos
prefijados
wraps(): para usar con los decoradores
lru_cache(): crear una función con memoria
¿Los decoradores, los closures y funciones
anidadas?
- Seguro ya hay N charlas del tema
Hora de ver algo de código real
Conclusiones
Hacer funciones pequeñas K.I.S.S
Aprovechar las baterías de python
Pensar en listas, iteradores, streams
Usar composición de funciones
El I/O y las validaciones tratar de tenerlo en los
extremos
Disciplina para no introducir side effects
Preguntas
Ya he terminado
Créditos
https://upload.wikimedia.org/wikipedia/commons/8/87/Horchateria_de_Santa_Catalina_en_Valencia.jpg
https://upload.wikimedia.org/wikipedia/sr/7/73/Trollface.png
https://upload.wikimedia.org/wikipedia/commons/1/15/Ambox_warning_pn.svg
http://giphy.com/gifs/jon-stewart-why-lYKvaJ8EQTzCU
https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Lambda_lc.svg/500px-Lambda_lc.svg.png
http://witchkitteh.deviantart.com/art/Teach-me-204949930
https://upload.wikimedia.org/wikipedia/en/a/a6/Alonzo_Church.jpg
http://giphy.com/gifs/a8749TBnyEIY8
https://upload.wikimedia.org/wikipedia/commons/9/97/%22USE_PROPER_TOOLS_FOR_THE_JOB_-
_TAKE_CARE_OF_THEM%22_-_NARA_-_515954.jpg
https://c2.staticflickr.com/8/7266/6953971910_664578fc08_b.jpg
http://i.giphy.com/NusWKgMXzVhIc.gif
http://i.giphy.com/DJZ14OxhrEsx2.gif
http://i.giphy.com/6lScd4x2D5Oko.gif
http://i.giphy.com/l41lZZqhIUA6IJNDO.gif
http://img4.wikia.nocookie.net/__cb20131226180633/dragonball/images/thumb/5/51/Grumpy-cat-
nope.jpg/500px-Grumpy-cat-nope.jpg
http://i.giphy.com/AMqCTHuCMFpM4.gif
http://i.giphy.com/IIjH0wN7F3uzS.gif
http://i.giphy.com/fDzM81OYrNjJC.gif

Más contenido relacionado

La actualidad más candente

La actualidad más candente (6)

Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Excel stuff
Excel stuffExcel stuff
Excel stuff
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller Python
 
Ia Robotica
Ia RoboticaIa Robotica
Ia Robotica
 
Ia Robotica
Ia RoboticaIa Robotica
Ia Robotica
 
Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
 

Similar a Funcional para trollear

Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 
Iniciación a las artes marciales con Python
Iniciación a las artes marciales con PythonIniciación a las artes marciales con Python
Iniciación a las artes marciales con PythonIsrael Fermin Montilla
 
¿Cómo aprender Python sin morir en el intento?
¿Cómo aprender Python sin morir en el intento?¿Cómo aprender Python sin morir en el intento?
¿Cómo aprender Python sin morir en el intento?Adolfo Fitoria
 
El lenguaje de pogramación C++
El lenguaje de pogramación C++El lenguaje de pogramación C++
El lenguaje de pogramación C++Rodrigo Corral
 
Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxDiegoSalvetti2
 
Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))kikocorreoso
 
De 0 A Python En 40 Minutos
De 0 A Python En 40 MinutosDe 0 A Python En 40 Minutos
De 0 A Python En 40 Minutosflekoso
 
Python ¿2 vs 3?
Python ¿2 vs 3?Python ¿2 vs 3?
Python ¿2 vs 3?Joel Rivera
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mariano Reingart
 
ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5Corvalius
 
Programando con Python
Programando con PythonProgramando con Python
Programando con PythonMario IC
 

Similar a Funcional para trollear (20)

Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Iniciación a las artes marciales con Python
Iniciación a las artes marciales con PythonIniciación a las artes marciales con Python
Iniciación a las artes marciales con Python
 
02 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 302 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 3
 
¿Cómo aprender Python sin morir en el intento?
¿Cómo aprender Python sin morir en el intento?¿Cómo aprender Python sin morir en el intento?
¿Cómo aprender Python sin morir en el intento?
 
Python Vs C
Python Vs CPython Vs C
Python Vs C
 
Go python, go
Go python, goGo python, go
Go python, go
 
El lenguaje de pogramación C++
El lenguaje de pogramación C++El lenguaje de pogramación C++
El lenguaje de pogramación C++
 
Django
DjangoDjango
Django
 
Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptx
 
Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))
 
De 0 A Python En 40 Minutos
De 0 A Python En 40 MinutosDe 0 A Python En 40 Minutos
De 0 A Python En 40 Minutos
 
python CIENTIFIFO.pdf
python CIENTIFIFO.pdfpython CIENTIFIFO.pdf
python CIENTIFIFO.pdf
 
Python ¿2 vs 3?
Python ¿2 vs 3?Python ¿2 vs 3?
Python ¿2 vs 3?
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015
 
ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5
 
Python + Ciencia = ♥
Python + Ciencia = ♥Python + Ciencia = ♥
Python + Ciencia = ♥
 
Phyton
PhytonPhyton
Phyton
 
Programando con Python
Programando con PythonProgramando con Python
Programando con Python
 
Python101
Python101Python101
Python101
 
Memoria dinamica en c
Memoria dinamica en cMemoria dinamica en c
Memoria dinamica en c
 

Más de Alejandro E Brito Monedero (14)

Mad scalability (perfomance debugging)
Mad scalability (perfomance debugging)Mad scalability (perfomance debugging)
Mad scalability (perfomance debugging)
 
Tres historias
Tres historiasTres historias
Tres historias
 
AMQP vs GRAPHITE
AMQP vs GRAPHITEAMQP vs GRAPHITE
AMQP vs GRAPHITE
 
Sysdig
SysdigSysdig
Sysdig
 
Sysdig SRECon 16 Europe
Sysdig SRECon 16 EuropeSysdig SRECon 16 Europe
Sysdig SRECon 16 Europe
 
Top Bug
Top BugTop Bug
Top Bug
 
Fabric más allá de lo básico
Fabric más allá de lo básicoFabric más allá de lo básico
Fabric más allá de lo básico
 
Experiencias con PostgreSQL en AWS
Experiencias con PostgreSQL en AWSExperiencias con PostgreSQL en AWS
Experiencias con PostgreSQL en AWS
 
Fabric Fast & Furious edition
Fabric Fast & Furious editionFabric Fast & Furious edition
Fabric Fast & Furious edition
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?
 
AWS Baby steps circa 2008
AWS Baby steps circa 2008AWS Baby steps circa 2008
AWS Baby steps circa 2008
 
Using Logstash, elasticsearch & kibana
Using Logstash, elasticsearch & kibanaUsing Logstash, elasticsearch & kibana
Using Logstash, elasticsearch & kibana
 
Wireshark tips
Wireshark tipsWireshark tips
Wireshark tips
 
Mi experiencia con Amazon AWS EC2 y S3
Mi experiencia con Amazon AWS EC2 y S3Mi experiencia con Amazon AWS EC2 y S3
Mi experiencia con Amazon AWS EC2 y S3
 

Último

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
 
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
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Luis Olivera
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
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
 
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
 
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
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
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
 
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
 

Último (20)

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
 
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
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
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
 
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.
 
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
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
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
 
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
 

Funcional para trollear

Notas del editor

  1. Hablamos de que Valencia == Horchata
  2. No hablar de matemáticas, advertir que se puede ser ofensivo sin querer y las excusas que dan los medios
  3. Nombre, que hago, por si quieren insultar, y donde suelo estar por si quieren secuestrar
  4. Objetivos para hacer todo esto
  5. Hablamos que la programación funcional viene de las matemáticas, alonso church lambda calculo
  6. Relax
  7. Hablar que python no es un lenguaje funcional puro, no tunning recursion, mutable, asignacion, etc
  8. Pero no todo esta perdido si tomamos ideas como la inmutabilidad, los side effects, la composicion, funciones de primer orden, lazyness
  9. Mindset que adquieres usando unix, hablar de pipes, filters, tee, etc
  10. Traducion a map y filter del tipico for con un if
  11. Traducion a map y filter del tipico for con un if
  12. Traducion a map y filter del tipico for con un if
  13. Ejemplo de como usar zip, es muy chorra a este nivel
  14. Ejemplo de como usar zip, es muy chorra a este nivel
  15. Chiste en el que hablas de la memoria del ordenador, no precomputar todo y calcular cosas según se piden
  16. Fail
  17. Algebra de iteradores xD
  18. https://github.com/aebm/docker-image-cleaner/blob/master/di_cleaner.py https://github.com/aebm/shuffler/blob/master/shuffler.py https://github.com/aebm/tools/blob/master/es_janitor.py https://github.com/aebm/tools/blob/master/es_cleaner.py