On 6/23/06, Guido van Rossum <[EMAIL PROTECTED]> wrote: > No; in order to make it possible to use a single dict lookup for > dispatch, the set members are expanded into the dict key. If you have > a large contiguous range, you'll be better off (sometimes *much* > better) doing an explicit if/elif check before entering the switch.
In that case, I would argue that the proposed syntax is misleading. Regardless of how it is implemented, a switch statement is conceptually a chain of if/elif statements. As such, the 'in' keyword, if it is allowed at all, should behave like it does in if statements, rather than it does in loops. If, for implementation reasons, you want to ensure that all of the sets are enumerable, I would recommend a syntax like this: "case" ["*"] expression ("," ["*"] expression)* ":" suite This is consistent with parameter lists, which emphasizes that the sequences are being enumerated instead of simply tested against. -- 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