Composition de fonctions avec Python

Beginner

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

Introduction

La composition de fonctions est une technique utilisée en programmation fonctionnelle pour combiner deux ou plusieurs fonctions pour former une nouvelle fonction. En Python, nous pouvons utiliser la fonction functools.reduce() pour effectuer une composition de fonctions de droite à gauche.

Composer des fonctions

Écrivez une fonction appelée compose(*fns) qui accepte une ou plusieurs fonctions en tant qu'arguments et renvoie une nouvelle fonction qui est le résultat de la composition des fonctions d'entrée de droite à gauche. La dernière (la plus à droite) fonction peut accepter un ou plusieurs arguments ; les fonctions restantes doivent être unaires.

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

Résumé

Dans ce défi, vous avez appris à utiliser la fonction functools.reduce() pour effectuer une composition de fonctions de droite à gauche en Python. Vous avez également écrit une fonction appelée compose() qui accepte une ou plusieurs fonctions en tant qu'arguments et renvoie une nouvelle fonction qui est le résultat de la composition des fonctions d'entrée de droite à gauche.