
July 1, 2006
7:01 a.m.
Tim Peters <tim.peters@gmail.com> wrote:
... Incidentally, I think that lexical scoping would also deal with the problem that people often encounter in which they have to write things like "lambda x=x:" where one would think "lambda x:" would suffice.
They _shouldn't_ encounter that at all anymore. For example,
def f(x): ... return lambda: x+1 f(3)() 4
works fine in modern Pythons.
Yes but:
a = [] for i in range(10): ... a.append(lambda: i) ... print [x() for x in a] [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
This subtle semantic of lambda is quite confusing, and still forces people to use the "i=i" trick. Giovanni Bajo