Композиция функций в Python

Beginner

This tutorial is from open-source community. Access the source code

Введение

Композиция функций - это техника, используемая в функциональном программировании для объединения двух или более функций в новую функцию. В Python мы можем использовать функцию functools.reduce() для выполнения правого-налево композиции функций.

Композиция функций

Напишите функцию под названием compose(*fns), которая принимает одну или более функций в качестве аргументов и возвращает новую функцию, которая является результатом композиции входных функций с права налево. Последняя (самая правая) функция может принимать один или более аргументов; оставшиеся функции должны быть унарными.

from functools import reduce

def compose(*fns):
  return reduce(lambda f, g: lambda *args: f(g(*args)), fns)
add5 = lambda x: x + 5
multiply = lambda x, y: x * y
multiply_and_add_5 = compose(add5, multiply)
multiply_and_add_5(5, 2) ## 15

Резюме

В этом испытании вы узнали, как использовать функцию functools.reduce() для выполнения правого-налево композиции функций в Python. Вы также написали функцию под названием compose(), которая принимает одну или более функций в качестве аргументов и возвращает новую функцию, которая является результатом композиции входных функций с права налево.