Введение
Композиция функций - это техника, используемая в функциональном программировании для объединения двух или более функций с созданием новой функции. В Python мы можем использовать функцию compose из модуля functools для выполнения композиции функций. Однако функция compose выполняет композицию функций справа налево, что может не подходить для всех случаев использования. В этом испытании вы реализуете функцию, которая выполняет композицию функций слева направо.
Композиция функций в обратном порядке
Напишите функцию compose_right, которая принимает одну или более функций в качестве аргументов и возвращает новую функцию, которая выполняет композицию функций слева направо. Первая (самая левая) функция может принимать один или более аргументов; оставшиеся функции должны быть унарными.
Ваше реализация должна использовать функцию reduce из модуля functools для выполнения композиции функций слева направо.
from functools import reduce
def compose_right(*fns):
## ваш код здесь
from functools import reduce
def compose_right(*fns):
return reduce(lambda f, g: lambda *args: g(f(*args)), fns)
add = lambda x, y: x + y
square = lambda x: x * x
add_and_square = compose_right(add, square)
add_and_square(1, 2) ## 9
Резюме
В этом испытании вы реализовали функцию compose_right, которая выполняет композицию функций слева направо. Вы использовали функцию reduce из модуля functools для выполнения композиции функций слева направо.