Назад к вопросам
Junior — Middle
59
Объясните концепцию каррирования функции и её применение в программировании.
Ответ от нейросети
sobes.tech AI
Каррирование (currying) — это техника преобразования функции с несколькими аргументами в последовательность функций, каждая из которых принимает один аргумент.
Например, функция f(a, b) преобразуется в f(a)(b).
Это удобно для частичного применения функций и создания более гибких и переиспользуемых компонентов.
Пример на Python с использованием функции из модуля functools:
from functools import partial
def multiply(x, y):
return x * y
# Каррирование вручную
def curried_multiply(x):
def inner(y):
return x * y
return inner
double = curried_multiply(2)
print(double(5)) # Выведет 10
# Использование partial для частичного применения
double_partial = partial(multiply, 2)
print(double_partial(5)) # Выведет 10
Каррирование помогает создавать специализированные функции из общих, улучшая читаемость и повторное использование кода.