| 12345678910111213141516171819202122232425262728293031323334353637 |
- # 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
|