37. Pipe
Crea una función que implemente el concepto de "pipe" (tubería) o "composition" de funciones. En programación funcional, un "pipe" permite encadenar llamadas a funciones, donde la salida de una función se convierte en la entrada de la siguiente.
La función pipe debe aceptar un número variable de funciones y devolver una nueva función compuesta. Al llamar a esta función compuesta con un argumento inicial, este argumento se pasa a la primera función, su resultado a la segunda, y así sucesivamente.
def pipe(*funcs):
"""
Compone una secuencia de funciones de izquierda a derecha.
"""
def piped_function(arg):
# Tu código aquí
pass
return piped_function
# Funciones de ejemplo
def sumar_uno(x):
return x + 1
def duplicar(x):
return x * 2
def a_string(x):
return str(x)
# Uso del pipe
transformador = pipe(sumar_uno, duplicar, a_string)
transformador(5)
# "12" ((5 + 1) * 2 = 12, luego a string)
transformador_2 = pipe(duplicar, sumar_uno)
transformador_2(10)
# 21 ((10 * 2) + 1 = 21)
Ratoncito
Implementa pipe para encadenar funciones donde cada función toma un solo argumento y devuelve un solo resultado.
Dragón
Extiende pipe para que las funciones intermedias puedan tomar múltiples argumentos (no solo uno), y la salida de una función se "expanda" para ser los argumentos de la siguiente. O, considera una implementación de compose que haga el encadenamiento de derecha a izquierda.
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
Apóyame en Ko-fi