[Python-Dev] Simple Switch statementZ
Guido van Rossum
guido at python.org
Mon Jun 26 02:49:49 CEST 2006
More information about the Python-Dev mailing list
Mon Jun 26 02:49:49 CEST 2006
- Previous message: [Python-Dev] Simple Switch statementZ
- Next message: [Python-Dev] Simple Switch statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 6/25/06, Ka-Ping Yee <python-dev at zesty.ca> wrote: > On Sun, 25 Jun 2006, Guido van Rossum wrote: > > What do you think of Nick C's 'once'? > > It's a bit closer to the right meaning... but what about: > > def f(x): > def g(y): > return y + once x > return g > > Does "once" mean not really once here, but "once for each new function > object that's created for g"? He specifically wants the latter semantics because it solves the problem of binding the value of a loop control variable in an outer scope: def f(n): return [(lambda: once i) for i in range(n)] should return n functions returning the values 0 through n-1. Without the once it returns n identical functions all returning n-1; this is due to outer-scope references referencing variables, not values. (In Scheme this is solved by making the for loop create a new variable for each iteration, but that's not Pythonic.) > > Right. But there are all sorts of objects that are compared by object > > identity (e.g. classes, modules, even functions) which may contain > > mutable components but are nevertheless "constant" for the purpose of > > switch or optimization. Let's not confuse this concept of constness > > with immutability. > > That's a good point. We need a concept like "stable for equality" > separate from "constant", since "constant" and "immutable" will mislead > those who are used to the meanings of these words in other languages. Anyone familiar with const in C++ will have a good grasp of the infinite shades of gray it can express. :-) -- --Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] Simple Switch statementZ
- Next message: [Python-Dev] Simple Switch statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list