from operator import add
from operator import mul
from functools import reduce
from math import prod


def my_add(a, b):
    result = a + b
    print(f"{a} + {b} = {result}")
    return result


def my_prod(a, b):
    return a * b


numbers = [1, 2, 3, 4, 5]


print("suma")
print(reduce(my_add, numbers))

print("producto")
print(reduce(my_prod, numbers))


print("lamda suma")
print(reduce(lambda a, b: a + b, numbers))

print("lamda producto")
print(reduce(lambda a, b: a * b, numbers))


print("operator.add")
print(reduce(add, numbers))

print("operator.mul")
print(reduce(mul, numbers))

print("suma")
print(sum(numbers))
print("producto")
print(prod(numbers))


print("Otro:")
print(reduce(my_add, numbers, 100))
