What is the "functional" way of doing this?

Ricardo Aráoz ricaraoz at gmail.com
Tue Jul 31 02:59:10 CEST 2007


> On Jul 30, 4:39 pm, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:
>> "attn.steven.... at gmail.com" <attn.steven.... at gmail.com> 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?








More information about the Python-list mailing list