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