map/filter/reduce/lambda opinions and background unscientific mini-survey
Tom Anderson
twic at urchin.earth.li
Mon Jul 4 10:23:44 EDT 2005
On Sun, 3 Jul 2005, Robert Kern wrote:
> Erik Max Francis wrote:
>> Ron Adam wrote:
>>
>>> So you are saying that anything that has a 1% use case should be included
>>> as a builtin function?
>>>
>>> I think I can find a few hundred other functions in the library that are
>>> used more than ten times as often as reduce. Should those be builtins
>>> too?
>>>
>>> This is a practical over purity issue, so what are the practical reasons
>>> for keeping it. "It's already there" isn't a practical reason. And it
>>> covers 100% of it's own potential use cases, is circular logic without a
>>> real underlying basis.
>>
>> But the Python 3000 plan, at least what we've heard of it so far, isn't
>> to move it to a standard library module. It's to remove it altogether,
>> replacing it with sum and product. Since sum and product don't cover
>> all the uses cases for reduce, this is a case of taking one function
>> that handles all the required use cases and replacing it with _two_
>> functions that don't. Since it's doubling the footprint of the reduce
>> functionality, arguments about avoiding pollution are red herrings.
>
> Four, in fact. sum(), product(), any(), and all().
I'll just chip in and say i'd quite like a flatten(), too; at the moment,
i have one like this:
def flatten(ll):
return reduce(lambda a, l: a.extend(l), ll, [])
A builtin, which had fast special-case code for then the argument is a
list of lists (rather than an iterable of iterables), would be nice, since
this is a reasonably big use of reduce for me.
How would one do that as a list comp, by the way? I'm really not very good
with them yet.
> [1] Okay, there was that guy who predicted that list comprehensions and
> first-class functions were the next to go. That was new. But also wrong.
> I think we can discount that.
True. Guido will only get rid of those after he's got rid of lowercase
letters in identifiers.
tom
--
A military-industrial illusion of democracy
More information about the Python-list
mailing list