> >> You mean something like this?: > >> > >> switch x in colours: > >> case RED: > >> # whatever > >> case GREEN: > >> # whatever > >> case BLUE: > >> # whatever > >> > >> I think Guido's right. It doesn't solve the underlying problem because the > >> compiler still has to figure out how to build a dispatch table from the > >> possible values in colours to the actual bytecode offsets of the cases. > > > > To implement this, you actually need two lookup tables: one particular > > to the switch that maps labels to bytecode offsets, and one in the > > dispatch table to map values to labels. The former is built when the > > switch is compiled, and the latter is built wherever the dispatch > > table is defined. Each lookup is still O(1), so the whole operation > > remains O(1). > > what's a "label" ?
In your example, RED, GREEN, and BLUE. colours provides a mapping from values to labels/cases, and the switch statement provides a mapping from labels/cases to code. Sorry about introducing a new term without saying anything about it. -- Eric Sumner _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com