In article <[EMAIL PROTECTED]>, actuary77 <[EMAIL PROTECTED]> wrote:
> I am trying to write simple recursive function to build a list: > > > def rec(n,alist=[]): > _nl=alist[:] > print n,_nl > if n == 0: > print n,_nl > return _nl > else: > _nl=_nl+[n] > rec(n-1,_nl) > > _nl=[] > _nl=rec(4) > print _nl > > ### shouldn't this work? > > _nl=rec(4) > > > > > The output is: > 4 [] > 3 [4] > 2 [4, 3] > 1 [4, 3, 2] > 0 [4, 3, 2, 1] > 0 [4, 3, 2, 1] > None > None > > > Question: > ============ > Why isn't the function returning a list? > Why is function returning None? I'm not 100% sure what you're trying to do here, but I suspect you left a "return" out of the else block, i.e. "return rec(n-1, _nl)". That would certainly explain why it's returning None. What problem are you trying to solve, or are you just experimenting with recursion? -- http://mail.python.org/mailman/listinfo/python-list