On Nov 22, 7:14 pm, oj <[EMAIL PROTECTED]> wrote: > On Nov 22, 3:02 pm, Ant <[EMAIL PROTECTED]> 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 builtin methods. 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 reduce directly. -- http://mail.python.org/mailman/listinfo/python-list