From b32ee61451e12700ca4ad1cfc337aa45a0f46a01 Mon Sep 17 00:00:00 2001 From: DolzhenkoAlexa Date: Thu, 11 Dec 2025 23:46:27 +0300 Subject: [PATCH 1/2] Added file for curry hw --- src/hw_curry/curry_func.txt | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/hw_curry/curry_func.txt diff --git a/src/hw_curry/curry_func.txt b/src/hw_curry/curry_func.txt new file mode 100644 index 0000000..9861da0 --- /dev/null +++ b/src/hw_curry/curry_func.txt @@ -0,0 +1,35 @@ +def curry(func, arity): + if type(arity) != int: + raise TypeError("Ошибка: Арность должна быть целым числом (int)") + if arity < 0: + raise ValueError("Ошибка: Арность должна быть положительной") + def curried(*args): + if len(args) == arity: + return func(*args) + elif len(args) > arity: + raise ValueError("Ошибка: Ожидалась другое количество аргументов") + else: + def next_step(*new_args): + return curried(*(args + new_args)) + return next_step + + return curried + + +def uncurry(func_curry, arity): + if type(arity) != int: + raise TypeError("Ошибка: Арность должна быть целым числом (int)") + if arity < 0: + raise ValueError("Ошибка: Арность должна быть положительной") + + def uncurried(*args): + if len(args) != arity: + raise ValueError("Ошибка: Ожидалась другое количество аргументов") + + result = func_curry + for a in args: + result = result(a) + return result + + return uncurried + \ No newline at end of file From fa15a7d02c6402c777a669577eac0d29db831a37 Mon Sep 17 00:00:00 2001 From: DolzhenkoAlexa Date: Thu, 11 Dec 2025 23:50:08 +0300 Subject: [PATCH 2/2] Changed file type --- src/hw_curry/{curry_func.txt => curry.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/hw_curry/{curry_func.txt => curry.py} (100%) diff --git a/src/hw_curry/curry_func.txt b/src/hw_curry/curry.py similarity index 100% rename from src/hw_curry/curry_func.txt rename to src/hw_curry/curry.py