[Python-Dev] switch-based programming in Python (original) (raw)
Martin v. Loewis martin@v.loewis.de
Thu, 8 Nov 2001 16:55:16 +0100
- Previous message: [Python-Dev] switch-based programming in Python
- Next message: [Python-Dev] switch-based programming in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I don't think you need anything extra if the RHS of the == is a hashable literal of some sort and the LHS is always the same simple variable or subscript expression. If the compiler can recognize the structure (that may be a big "if"), all you need is a dictionary of offsets stored in the function's constants. You just execute the equivalent of
offset = jumptable.get(x, E)
That won't work: It maybe that x is not hashable, even though it compares equal with the RHS values.
Even if it was hashable, you'd change the language semantics: In the original code, you call cmp, say, 20 times; in the modified code, you call hash once and cmp perhaps also once. If cmp has side effects, you get a language change.
Regards, Martin
- Previous message: [Python-Dev] switch-based programming in Python
- Next message: [Python-Dev] switch-based programming in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]