Каррирование в Python с использованием functools.partial

Beginner

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

Введение

В функциональном программировании каррирование - это техника преобразования функции, которая принимает несколько аргументов, в последовательность функций, каждая из которых принимает только один аргумент. В Python мы можем использовать функцию functools.partial() для реализации каррирования.

Каррированная функция

Напишите функцию curry(fn, *args), которая осуществляет каррирование заданной функции fn. Функция должна возвращать новую функцию, которая ведет себя аналогично fn с заданными аргументами args, частично примененными.

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

Резюме

В этом испытании вы узнали, как реализовать каррированную функцию с использованием functools.partial() в Python. Каррированная функция позволяет вам частично применить аргументы к функции и вернуть новую функцию, которая принимает оставшиеся аргументы.