Sobes.tech
Junior — Senior

Intelligent Summator

livecode

Task condition

Create a callable object sum_numbers() that accumulates integer values upon successive calls.

Example 1:

print(sum_numbers(1))

Output: 1

Example 2:

print(sum_numbers(1)(2))

Output: 3

The number of call chains is unlimited:

Example 3:

print(sum_numbers(1)(2)(3))

Output: 6

Example 4:

print(sum_numbers(1)(2)(3)(4))

Output: 10

Example 5:

print(sum_numbers(1)(2)(3)(4)(5))

Output: 15

The object returned by sum_numbers() should remain reusable:

Example 6:

sum_two = sum_numbers(2)
print(sum_two)

Output: 2

Example 7:

print(sum_two + 5)

Output: 7

Example 8:

print(sum_two(3))

Output: 5

Example 9:

print(sum_two(3)(5))

Output: 10

Example 10:

print(sum_two * 10)

Output: 1824

You need to implement an object that supports both chain calls and regular arithmetic operations (addition, multiplication) with subsequent output of the current sum.

Intelligent Summator - Live Coding Python - sobes.tech