[Python-Dev] any support for a methodcaller HOF? (original) (raw)

Eric Nieuwland eric.nieuwland at xs4all.nl
Sat Feb 4 09:05:37 CET 2006


Nick Coghlan wrote:

That's like saying "it's not the same because '(x*x def (x)' creates a function while '(x*x for x in seq)' creates a generator-iterator". Well, naturally - if the expression didn't do something different, what would be the point in having it? ;-) Naturally. I just wanted to point out it's a beast of another kind, so like syntax may not be a good idea.

The parallel I'm trying to draw is at the syntactic level, not the semantic. I'm quite aware that the semantics will be very different ;)

Yours is

f = lambda x: x*x and it will die by Guido hand... In the short term, probably. I'm hoping that the progressive accumulation of workarounds like itemgetter, attrgetter and partial (and Alex's suggestion of 'methodcaller') and the increasing use of function arguments for things like sorting and the itertools module will eventually convince Guido that deferring expressions is a feature that needs to be fixed rather than discarded entirely.

Then how about nameless function/method definition: def (x): ... usual body ... produces an unnamed method object and def spam(x): .... is just spam = def (x): ... while our beloved eggs(lambda x: xx) would become eggs(def(x): return xx)

--eric



More information about the Python-Dev mailing list