What is the "functional" way of doing this?

attn.steven.kuo at gmail.com attn.steven.kuo at gmail.com
Mon Jul 30 19:55:13 EDT 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).



Yes, I agree that performance would greatly suffer.  This
is really idomatic Lisp re-written as Python and was the first
thing that popped into my head when the OP mentioned 'functonal'.

Your generator/iterator solution should run must faster.

--
Regards,
Steven






More information about the Python-list mailing list