recursion gotcha?

Marco Bizzarri marco.bizzarri at gmail.com
Sun Sep 14 10:44:36 CEST 2008


On Sun, Sep 14, 2008 at 10:08 AM, Marco Bizzarri
<marco.bizzarri at gmail.com> wrote:
> On Sun, Sep 14, 2008 at 10:01 AM, cnb <circularfunc at yahoo.se> wrote:
>> this recursive definition of sum thrumped me, is this some sort of
>> gotcha or am I just braindead today?
>> and yes i know this is easy a a for x in xs acc += x or just using the
>> builtin.
>>
>> def suma(xs, acc=0):
>>        if len(xs) == 0:
>>                acc
>>        else:
>>                suma(xs[1:], acc+xs[0])
>
> You're just missing the "return" statements?
>
> def suma(xs, acc=0):
>       if len(xs) == 0:
>              return acc
>       else:
>              return suma(xs[1:], acc+xs[0])
>
>

Besides: you can avoid the "acc" parameter:

def suma(xs):
    if len(xs) == 0:
        return 0
    else:
        return xs[0] + suma(xs[1:])

Regards
Marco


-- 
Marco Bizzarri
http://notenotturne.blogspot.com/
http://iliveinpisa.blogspot.com/



More information about the Python-list mailing list