Skip to content

Comments

Каррирование#5

Open
Andrew-Kochanov wants to merge 1 commit intomainfrom
hw_7
Open

Каррирование#5
Andrew-Kochanov wants to merge 1 commit intomainfrom
hw_7

Conversation

@Andrew-Kochanov
Copy link
Owner

No description provided.

@Andrew-Kochanov Andrew-Kochanov requested a review from KubEF October 26, 2025 20:39
Comment on lines +37 to +42
curry_f = curry(f, 3)
uncurry_f = uncurry(curry_f)
print("Исходная функция:", f(1, 2, 3))
print("Каррированная функция:", curry_f(1)(2)(3))
print("Антикаррированная функция:", uncurry_f(1, 2, 3))

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это не заменяет тесты

Comment on lines +8 to +23
def curry(f, arity):

## функция, которая вызывает саму себя и накапливает аргументы
def g(*args):

##возвращает длину списка переменных из сигнатуры функции и сравнивает с арностью
if arity != len(signature(f).parameters):
raise Exception("Некорректная арность")

## если количество аргументов и арность совпадают, то каррирование завершенно
if len(args) == arity:
return f(*args)
## иначе запоминаем аргумент, и вызваем функцию еще раз
return lambda *x: g(*(args + x))

return g()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Какжется, что по вашей реализации можно пользоваться каррированной функцией как-то так f_c(1, 2)(3). Что не соответствует определению

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants