mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-19 19:10:17 +00:00
37 lines
508 B
Python
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 |