From e65fe3bbef1dc14ed056c4bf1872fef898265e85 Mon Sep 17 00:00:00 2001 From: dfdf11-cpu Date: Sun, 26 Oct 2025 19:11:01 +0000 Subject: [PATCH] add one file for hw curry_uncurry.py --- src/26.10.2025/curry_uncurry.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 src/26.10.2025/curry_uncurry.py diff --git a/src/26.10.2025/curry_uncurry.py b/src/26.10.2025/curry_uncurry.py new file mode 100755 index 0000000..b078d70 --- /dev/null +++ b/src/26.10.2025/curry_uncurry.py @@ -0,0 +1,30 @@ +def curry(func, arity): + def curried(*args): + if len(args) == arity: + return func(*args) + return lambda x: curried(*args, x) + return curried + +def uncurry(curried_func, arity): + def uncurried(*args): + result = curried_func + for arg in args: + result = result(arg) + return result + return uncurried + +def sum3(x, y, z): + return x + y + z + +a = int(input("x: ")) +b = int(input("y: ")) +c = int(input("z: ")) + +if a < 0 or b < 0 or c < 0: + print("ОШИБКА: числа не могут быть отрицательными.") +else: + sum3_curry = curry(sum3, 3) + sum3_uncurry = uncurry(sum3_curry, 3) + + print("curry:", sum3_curry(a)(b)(c)) + print("uncurry:", sum3_uncurry(a, b, c)) \ No newline at end of file