Implémenter la composition de fonctions de gauche à droite

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

La composition de fonctions est une technique utilisée en programmation fonctionnelle pour combiner deux ou plusieurs fonctions afin de créer une nouvelle fonction. En Python, on peut utiliser la fonction compose du module functools pour effectuer la composition de fonctions. Cependant, la fonction compose effectue une composition de fonctions de droite à gauche, ce qui peut ne pas convenir à tous les cas d'utilisation. Dans ce défi, vous allez implémenter une fonction qui effectue une composition de fonctions de gauche à droite.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/keyword_arguments("Keyword Arguments") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") subgraph Lab Skills python/comments -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} python/tuples -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} python/function_definition -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} python/keyword_arguments -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} python/lambda_functions -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} python/importing_modules -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} python/using_packages -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} python/standard_libraries -.-> lab-13606{{"Implémenter la composition de fonctions de gauche à droite"}} end

Reverse Compose Functions

Écrivez une fonction compose_right qui prend une ou plusieurs fonctions en arguments et renvoie une nouvelle fonction qui effectue une composition de fonctions de gauche à droite. La première (la plus à gauche) fonction peut accepter un ou plusieurs arguments ; les fonctions suivantes doivent être unaires.

Votre implémentation devrait utiliser la fonction reduce du module functools pour effectuer une composition de fonctions de gauche à droite.

from functools import reduce

def compose_right(*fns):
  ## votre code ici
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

Summary

Dans ce défi, vous avez implémenté une fonction compose_right qui effectue une composition de fonctions de gauche à droite. Vous avez utilisé la fonction reduce du module functools pour effectuer une composition de fonctions de gauche à droite.