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: x*x) would become eggs(def(x): return x*x) --eric _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com