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.