Alex Martelli wrote: > 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
Yes, that's what I was thinking. Thank you. -- http://mail.python.org/mailman/listinfo/python-list