James Stroud <[EMAIL PROTECTED]> wrote: ... > This was my answer to the thread "new in programing": > > def do_something(*args): > print args > > def do_deeply(first, depth, lim, doit=True, *args): > if depth < lim: > do_deeply(first+1, depth+1, lim, False, *args) > if first <= depth: > do_deeply(first+1, depth, lim, True, *args + (first,)) > elif doit: > do_something(*args) > > do_deeply(first=1, depth=3, lim=4) > > I thought it was a good answer, but I think better would be a generator. Is > there a straightforward way to make such a function a generator, or does it
I'm not entirely sure what you mean, but I will guess it's something not too different from...: def do_deeply(first, depth, lim, doit=True, *args): if depth < lim: for x in do_deeply(first+1, depth+1, lim, False, *args): yield x if first <= depth: for x in do_deeply(first+1, depth, lim, True, *args + (first,)): yield x elif doit: yield args to be used with for x in do_deeply(first=1, depth=3, lim=4): do_something(*x) Did I guess right...? Alex -- http://mail.python.org/mailman/listinfo/python-list