Ricardo Aráoz wrote:
>>On Jul 30, 4:39 pm, Paul Rubin <http://[EMAIL PROTECTED]> wrote:
>>
>>>"[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes:
>>>
>>>>Recursion is common in functional programming:
>>>>def f(n, l=None):
>>>> if l == None:
>>>> l = []
>>>> if n > 0:
>>>> return f(n/26, l + [n%26])
>>>> else:
>>>> return l
>>>>print f(1000)
>>>
>>>Right, this is functional style, but quite painful in Python (no tail
>>>recursion, and look at all that list copying).
>>
>
> It might actually be :
>
> def f(n):
> if n > 0:
> return ([n%26] + f(n/26))
> else:
> return []
>
> Wouldn't that be ok?
>
You are still copying lists. This wouldn't:
def f(n):
if n>0:
yield n%26
for i in f(n/26):
yield i
James
--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095
http://www.jamesstroud.com/
--
http://mail.python.org/mailman/listinfo/python-list