On 2010-02-17 12:07:05 -0500, Andrei Alexandrescu <[email protected]> said:

Searching a value in a literal should actually be allowed:

x in [10, 20, 30, 0]

is great because the compiler has complete discretion in how to conduct the search (e.g. linear vs. binary vs. hash search; it can take the initiative of presorting the literal). But general search in an unstructured range... maybe not.

Are you talking about literals or compile-time constants? A literal can be built using variables and functions, such as:

        x in [a, b, c, d, e]

This would be mostly equivalent to this:

        x == a || x == b || x == c || x == d || x == e

I'd tend to allow it as it makes it easier to write and read conditionals with repeated comparisons against the same variable.

But I guess that's less important than supporting compile-time constants:

        const allowedCharacters = ['0','1','2','3','4','5','6','7','8','9'];

        if (x in allowedCharacters)
                ...;


--
Michel Fortin
[email protected]
http://michelf.com/

Reply via email to