foldr function in Python
antroy at gmail.com
Fri Nov 23 09:50:30 CET 2007
On Nov 22, 7:14 pm, oj <ojee... at gmail.com> wrote:
> On Nov 22, 3:02 pm, Ant <ant... at gmail.com> wrote:
> It's basically just one line to implement:
> foldr = lambda f, i: lambda s: reduce(f, s, i)
> It's just reduce with currying, I'm not sure it adds that much to what
> python already offers.
Yes it's easy to implement. I did it in two steps because I think it's
easier to read. That's not the point I'm trying to make though. sum,
any and all are trivial to implement, yet they made it into the
The point of those functions I believe to be to promote easier to
understand idioms. Without them people will continue to write ad hoc
reduce based versions (which are less readable and less efficient).
With sum, any and all in the standard library, it becomes easier to
write readable code, and so people will be more likely to do so.
The other benefit is to promote ways of thinking about code that you
may not have come across or thought about before. This is a common
situation when learning new languages - before learning python I would
never have thought to use map or reduce functions, and these are
trivially easy to implement.
So my point really is that foldr (perhaps renamed to make_reducer or
something) could create idioms that are more readable than using
More information about the Python-list