pocketpy/tests/43_closure.py
blueloveTH 0b649f3bef ...
2024-08-04 22:45:00 +08:00

37 lines
508 B
Python

# only one level nested closure is implemented
def f0(a, b):
def f1():
return a + b
return f1
a = f0(1, 2)
b = f0(3, 4)
assert a() == 3
assert b() == 7
def f0(a, b):
def f1():
a = 5 # use this first
return a + b
return f1
a = f0(1, 2)
assert a() == 7
def f3(x, y):
return lambda z: x + y + z
a = f3(1, 2)
assert a(3) == 6
# closure ex
def f(n):
def g(x):
if x==n:
return n
return g(x+1)
return g(0)
assert f(10) == 10