'switch' operator improvement
Dave Herman
dherman at ccs.neu.edu
Tue Oct 16 08:19:44 PDT 2007
But that's not what you proposed, is it? I understood your proposal to
mean something more like:
function f(g) {
if (let (tmp = g()) // case g():
(tmp is RegEx ? tmp.match(x) : x == tmp)) ....
if ....
}
Dave
Eugen.Konkov at aldec.com wrote:
> I think switch ... case construction must be interpreted as:
> function f(g) {
> if( x == g() ) .... // case g():
> if( .... // case ...
> }
>
> ----- Original Message -----
> From: "Dave Herman" <dherman at ccs.neu.edu>
> To: "Lars T Hansen" <lth at acm.org>
> Cc: <Eugen.Konkov at aldec.com>; <Es4-discuss at mozilla.org>
> Sent: Tuesday, October 16, 2007 6:04 PM
> Subject: Re: 'switch' operator improvement
>
>
>> It's clever, but it's a special case that may not abstract very
>> smoothly. For example:
>>
>> function f(g) {
>> switch (x) {
>> case g():
>> ...
>> }
>> }
>>
>> The behavior of my function depends on whether g() returns a RegEx or a
>> non-RegEx. Maybe that's what you want, but it means it's an extra
>> special case that you have to be aware of whenever abstracting a case
>> statement.
>>
>> Dave
>>
>> Lars T Hansen wrote:
>>> Neat, though it breaks backward compatibility -- each regexp is
>>> converted to string before the comparison, IIRC. (Compatibility may
>>> not be a big problem in practice in this case.)
>>>
>>> --lars
>>>
>>> On 10/16/07, Eugen.Konkov at aldec.com <Eugen.Konkov at aldec.com> wrote:
>>>> allow RegEx in case
>>>>
>>>> var str= 'a';
>>>> switch( str ) {
>>>> case /a/:
>>>> alert('a');
>>>> break;
>>>>
>>>> case /b/:
>>>> alert('b');
>>>> break;
>>>> }
>>>>
>>>> _______________________________________________
>>>> Es4-discuss mailing list
>>>> Es4-discuss at mozilla.org
>>>> https://mail.mozilla.org/listinfo/es4-discuss
>>>>
>>>>
>>> _______________________________________________
>>> Es4-discuss mailing list
>>> Es4-discuss at mozilla.org
>>> https://mail.mozilla.org/listinfo/es4-discuss
> _______________________________________________
> Es4-discuss mailing list
> Es4-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es4-discuss
More information about the Es4-discuss
mailing list