horpner at yahoo.com
Thu Sep 13 19:32:38 CEST 2007
On 2007-09-13, Ian Clark <iclark at mail.ewu.edu> wrote:
> Neil Cerutti wrote:
>> On 2007-09-13, Gigs_ <gigs at hi.t-com.hr> wrote:
>>> Can someone explain me this
>>>>>> def f(l):
>>> if l == :
>>> return 
>>> return f(l[1:]) + l[:1] # <= cant figure this, how is all sum at the end?
>> In plain English, the above program says:
>> The sum of the items in list l is zero if the list is empty.
>> Otherwise, the sum is the value of the first item plus the sum of
>> the rest of the items in the list.
> Am I missing something? What does this have to do with summing?
> >>> def f(l):
> ... if l == :
> ... return 
> ... else:
> ... return f(l[1:]) + l[:1]
> >>> f([1, 2, 3, 4])
> [4, 3, 2, 1]
It says: You need to read more than the first sentence of a
message before responsing:
> Well, it would say that if it weren't somewhat buggy. l[:1]
> doesn't evaluate to a number, but to a list containing one
> number, so the above program doesn't do what you say it does.
> It should read something like:
> def my_sum(seq):
> if len(seq) == 0:
> return 0
> return seq + my_sum(seq[1:])
More information about the Python-list