-
Notifications
You must be signed in to change notification settings - Fork 0
/
task_2.py
35 lines (29 loc) · 1.04 KB
/
task_2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Uzupełnij funkcję `simple_functional_calc` aby za pomocą
# kolejnych wowołań dało się wykonywać operację dodawania i
# odejmowania. Pierwsze wywołanie będzie zawierało wartość
# pierwszego operandu, drugie wywołanie będzie zawierało
# znak reprezentujący operację a trzecie wywołanie będzie
# zawierało wartość drugiego operandu. Operacją może być
# dodawanie ('+') lub odejmowanie ('-').
#
# Przykład 1:
# simple_functional_calc(1)('+')(1) == 2
#
# Przykład 2:
# simple_functional_calc(1)('-')(1) == 0
#
def simple_functional_calc(x):
def symbol(s):
def operation(y):
if s == '+':
result = x + y
else:
result = x - y
return result
return operation
return symbol
def test_simple_functional_calc():
assert simple_functional_calc(1)("+")(1) == 2
assert simple_functional_calc(1)("-")(1) == 0
assert simple_functional_calc(10)("+")(123) == 133
assert simple_functional_calc(0)("-")(5) == -5