1
0

_closure.py 374 B

123456789101112131415161718192021222324252627
  1. # only one level nested closure is implemented
  2. def f0(a, b):
  3. def f1():
  4. return a + b
  5. return f1
  6. a = f0(1, 2)
  7. b = f0(3, 4)
  8. assert a() == 3
  9. assert b() == 7
  10. def f0(a, b):
  11. def f1():
  12. a = 5 # use this first
  13. return a + b
  14. return f1
  15. a = f0(1, 2)
  16. assert a() == 7
  17. def f3(x, y):
  18. return lambda z: x + y + z
  19. a = f3(1, 2)
  20. assert a(3) == 6