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

Reply via email to