Funciones como sort, max o min pueden recibir argumentos como key= que son funciones y pueden determinar su comportamiento. Esto hace que las funciones incorporadas sort y max sean mucho más poderosas y genéricas. Pueden utilizarse en muchos más escenarios que si solo compararan los valores en sí mismos sin el argumento key=.
Podemos crear nuestras propias funciones de orden superior también:
Aquí pasamos diferentes funciones como f a la función de orden superior modify. La función modify crea una nueva lista a partir de la lista de entrada y devuelve el resultado. Observa que incluso podemos pasar una función como str a la función. Así, a cada elemento de la lista de entrada se le aplicará la función str() – str(2), str(0), str(1).
Desafío
Implementa una versión genérica de la función sum llamada generic_sum que tomará una colección como primer argumento (puede ser una lista, un conjunto o una lista de tuplas) y una función como segundo argumento que obtenga un número de cada elemento de la colección.