Hello: I need some help in understanding generators. I get them to work in simple cases, but the following example puzzles me. Consider the non-generator, "ordinary" procedure:
def foo(n): s = [] def foo(n): if n == 0: print s else: s.append(0) foo(n - 1) s.pop() s.append(1) foo(n - 1) s.pop() foo(n) foo(n) prints all n-bit-wide binary numbers as a list. I would now like to create a generator for such numbers: def bin(n): s = [] def bin(n): if n == 0: yield s else: s.append(0) bin(n - 1) s.pop() s.append(1) bin(n - 1) s.pop() return bin(n) yet this doesn't work as expected. Can someone please explain why? Thanks, Mayer Goldberg -- http://mail.python.org/mailman/listinfo/python-list