Currying en Python con functools.partial

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En la programación funcional, la currying es una técnica que consiste en transformar una función que toma múltiples argumentos en una secuencia de funciones que cada una toma un solo argumento. En Python, podemos usar la función functools.partial() para implementar la currying.


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-13611{{"Currying en Python con functools.partial"}} python/tuples -.-> lab-13611{{"Currying en Python con functools.partial"}} python/function_definition -.-> lab-13611{{"Currying en Python con functools.partial"}} python/keyword_arguments -.-> lab-13611{{"Currying en Python con functools.partial"}} python/lambda_functions -.-> lab-13611{{"Currying en Python con functools.partial"}} python/importing_modules -.-> lab-13611{{"Currying en Python con functools.partial"}} python/using_packages -.-> lab-13611{{"Currying en Python con functools.partial"}} python/standard_libraries -.-> lab-13611{{"Currying en Python con functools.partial"}} end

Función Curry

Escribe una función curry(fn, *args) que realice la currying de una función dada fn. La función debe devolver una nueva función que se comporte como fn con los argumentos dados, args, aplicados parcialmente.

from functools import partial

def curry(fn, *args):
  return partial(fn, *args)
add = lambda x, y: x + y
add10 = curry(add, 10)
add10(20) ## 30

Resumen

En este desafío, aprendiste cómo implementar una función curry usando functools.partial() en Python. La función curry te permite aplicar parcialmente argumentos a una función y devolver una nueva función que toma los argumentos restantes.