Implémenter la composition de fonctions de gauche à droite

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 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.

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.