Sobes.tech
Back to questions
Junior — Middle
58

Объясните концепцию каррирования функции и её применение в программировании.

Answer from AI

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

Каррирование помогает создавать специализированные функции из общих, улучшая читаемость и повторное использование кода.