Implementiere die links-rechts-Funktionskomposition

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Die Funktionskomposition ist eine Technik, die in der funktionalen Programmierung verwendet wird, um zwei oder mehr Funktionen zu kombinieren, um eine neue Funktion zu erstellen. In Python können wir die compose-Funktion aus dem functools-Modul verwenden, um die Funktionskomposition durchzuführen. Die compose-Funktion führt jedoch eine rechts-links-Funktionskomposition durch, was für alle Anwendungsfälle möglicherweise nicht geeignet ist. In dieser Herausforderung implementieren Sie eine Funktion, die eine links-rechts-Funktionskomposition durchführt.


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{{"Implementiere die links-rechts-Funktionskomposition"}} python/tuples -.-> lab-13606{{"Implementiere die links-rechts-Funktionskomposition"}} python/function_definition -.-> lab-13606{{"Implementiere die links-rechts-Funktionskomposition"}} python/keyword_arguments -.-> lab-13606{{"Implementiere die links-rechts-Funktionskomposition"}} python/lambda_functions -.-> lab-13606{{"Implementiere die links-rechts-Funktionskomposition"}} python/importing_modules -.-> lab-13606{{"Implementiere die links-rechts-Funktionskomposition"}} python/using_packages -.-> lab-13606{{"Implementiere die links-rechts-Funktionskomposition"}} python/standard_libraries -.-> lab-13606{{"Implementiere die links-rechts-Funktionskomposition"}} end

Umgekehrte Kompositionsfunktionen

Schreiben Sie eine Funktion compose_right, die eine oder mehrere Funktionen als Argumente nimmt und eine neue Funktion zurückgibt, die eine links-rechts-Funktionskomposition durchführt. Die erste (am linkesten) Funktion kann ein oder mehrere Argumente akzeptieren; die verbleibenden Funktionen müssen einstellige sein.

Ihre Implementierung sollte die reduce-Funktion aus dem functools-Modul verwenden, um die links-rechts-Funktionskomposition durchzuführen.

from functools import reduce

def compose_right(*fns):
  ## Ihr Code hier
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

Zusammenfassung

In dieser Herausforderung haben Sie eine Funktion compose_right implementiert, die eine links-rechts-Funktionskomposition durchführt. Sie haben die reduce-Funktion aus dem functools-Modul verwendet, um die links-rechts-Funktionskomposition durchzuführen.