[Python-Dev] Switch statement
Nicko van Someren
nicko at nicko.org
Fri Jun 16 06:26:31 CEST 2006
More information about the Python-Dev mailing list
Fri Jun 16 06:26:31 CEST 2006
- Previous message: [Python-Dev] Switch statement
- Next message: [Python-Dev] Switch statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 16 Jun 2006, at 00:49, Phillip J. Eby wrote: > At 11:45 PM 6/15/2006 +0100, Nicko van Someren wrote: >> On 15 Jun 2006, at 11:37, Nick Coghlan wrote: >> > ... >> > The lack of a switch statement doesn't really bother me personally, >> > since I >> > tend to just write my state machine type code so that it works >> off a >> > dictionary that I define elsewhere, >> >> Not trying to push more LISP into python or anything, but of course >> we could converge your method and the switch statement elegantly if >> only we could put whole suites into lamdbas rather than just single >> expressions :-) > > As has already been pointed out, this > > 1) adds function call overhead, > 2) doesn't allow changes to variables in the containing function, and > 3) even if we had a rebinding operator for free variables, we would > have the overhead of creating closures. Noted. I find (2) the most compelling issue. I was merely suggesting a succinct way to express the model that Nick Cohglan was espousing. > The lambda syntax does nothing to fix any of these problems, and > you can already use a mapping of closures if you are so inclined. > However, you'll probably find that the cost of creating the > dictionary of closures exceeds the cost of a naive sequential > search using if/elif. The smiley was supposed to indicate that this was not an entirely serious suggestion; my apologies if the signal was lost in transmission. In the equivalent if/elif to a switch you're only comparing a single value against a set of pre-computed values, and expecting to only do half the tests, so it's almost certainly going to be quicker than sorting out the whole set of closures. I do however have a bug-bear about lambdas being restricted to single expressions, but maybe that's just me. Nicko
- Previous message: [Python-Dev] Switch statement
- Next message: [Python-Dev] Switch statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list