Funciones como valores en Python
Las funciones son objetos: pásalas, guárdalas, devuélvelas.
def aplicar_dos_veces(fn, valor):
return fn(fn(valor))
def sumar_cinco(n):
return n + 5
resultado = aplicar_dos_veces(sumar_cinco, 10)
celsius = [0, 20, 37, 100]
fahrenheit = list(map(lambda c: c * 9 / 5 + 32, celsius))
tibios = list(filter(lambda c: c > 15, celsius))
operaciones = {"doble": lambda n: n * 2, "cuadrado": lambda n: n * n}
respuesta = operaciones["cuadrado"](12)
Cómo funciona
aplicar_dos_vecesrecibe una función y la llama dos veces.mapyfiltertransforman listas con lambdas.- Un dict de lambdas despacha operaciones por nombre.
Palabras clave y builtins usados aquí
deffilterlambdalistmapreturn
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 384
- Tokens
- 117
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 74 segundos.
Paso 4 de 6 en Funciones; paso 36 de 72 en Fundamentos del lenguaje.