Introducción
En Python, las funciones son objetos de primer nivel, lo que significa que se pueden pasar como cualquier otro valor. Una aplicación útil de esto es aplicar una función a un valor de manera condicional según una cierta condición. En este desafío, se te pedirá escribir una función que tome una función condición y una función a aplicar cuando la condición sea verdadera, y devuelva una nueva función que aplique la función cuando la condición sea verdadera.
Aplicar función cuando sea verdadera
Escribe una función llamada when que tome dos argumentos: una función condición predicado y una función a aplicar cuando_verdadero. La función when debe devolver una nueva función que tome un solo argumento x. La nueva función debe comprobar si el valor de predicado(x) es True. Si es así, la nueva función debe llamar a cuando_verdadero(x) y devolver el resultado. En caso contrario, la nueva función debe devolver x.
def when(predicate, when_true):
return lambda x: when_true(x) if predicate(x) else x
doblar_numeros_pares = when(lambda x: x % 2 == 0, lambda x : x * 2)
doblar_numeros_pares(2) ## 4
doblar_numeros_pares(1) ## 1
Resumen
En este desafío, has escrito una función que aplica una función a un valor de manera condicional según una cierta condición. Esta es una técnica útil para crear código más flexible y reutilizable.