Terry Reedy wrote:
This is early-binding versus late-binding. Python is a late-binding
language.

   ok ...


Are you asking about changing all function compilation or only when
functions are defined with lambda expressions?

At least lambda expressions, but (see below) any other built-in where 'early-binding' makes sense for intuitive results or performance--- possibly, not commenting.

The latter *would* make
there be a 'suble nuance' that Python now lacks and does not need.

   How so, and why not?


Has anyone suggested this?

 Of course, more than once, in multiple variations. All have so far been
rejected, more than once. The most sensible ideas are for earlier
binding of builtins to make Python run faster.

At the moment I'm only speaking about my OP and that particular list comprehension... the thing that happened (at least for me) is that the intuitive sense that each 'i' somehow becomes a part of the anonymous function (I know, not so) is built-in. There is little to nothing indicating in the docs that this is not so. Again, what we have here is the 'i' being saved in a cell and looked up at call time (an implementation detail, 'late-binding') that is critical for the user-coder to understand. This *may* be true for other built-ins also, I'm not commenting on that, but it seems to me that if lambda is going to remain in the language at all that 'early-binding' in the lambda specific case would make sense; at least make the lambda more useful generally.

... just saying,


kind regards,
m harris




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to