On Fri, Sep 14, 2007 at 01:40:17PM +0200, Gigs_ wrote regarding Re: recursion: > > what i mean is how python knows to add all thing at the end of recursion > > >>> def f(l): > if l == []: > return [] > else: > return f(l[1:]) + l[:1] >
The following script does exactly the same thing, except it creates print statements to help you figure out what's going on, and it binds f(L[1:]) to a variable so you can use it again. def f(L): # l capitalized to accentuate difference between l and 1. print "L =", L print "L[1:] =", L[1:] print "L[:1] =", L[:1] if L == []: print "Return: ", [] return [] else: next = f(L[1:]) print "Return: ", next, "+", L[:1], "=", next + L[:1] return next + L[:1] if __name__=='__main__': print f(['A', 'B', 'C', 'D']) Try it out. See what happens. Cheers, Cliff -- http://mail.python.org/mailman/listinfo/python-list