syntax for case ranges

classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|

syntax for case ranges

Sultan
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Felipe Nascimento de Moura
Very interesting.

Once I wanted (and would have used a lot) something like a `switchMatch`.
It would work like this:

switchMatch(value) {
  case /\d+/: { ... }
  case /\s+/: { ... }
  case /.../: { ... }
  default: {
    console.log('Didn't match any of the options');
  }
}

Of course you can have a regex like `(\d+)|(\s+)|...` but it would be more readable and would allow situations like yours to be easily solved, read, thought and taught.

[ ]s

--

Felipe N. Moura
Web Developer, Google Developer ExpertFounder of BrazilJSNasc and On2.

Website:  http://felipenmoura.com / http://nasc.io/ 
Twitter:    @felipenmoura
---------------------------------
 Changing  the  world  is the least I expect from  myself! 


On Fri, Jan 31, 2020 at 6:57 AM Sultan <[hidden email]> wrote:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Oriol _
In reply to this post by Sultan

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Bruno Macabeus
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Sultan
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Isiah Meadows-3
Still better to discuss it there - it's highly related to your suggestion. And I'm pretty sure an issue already exists related to that.

On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Naveen Chawla
Certain languages allow the expression 0<x<5. Does anybody know if this would be syntactically possible in JavaScript? Of course this would only apply for "if"/"while" statements.

On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]> wrote:
Still better to discuss it there - it's highly related to your suggestion. And I'm pretty sure an issue already exists related to that.

On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Mark S. Miller
3 < 2 < 1;  // true


On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]> wrote:
Certain languages allow the expression 0<x<5. Does anybody know if this would be syntactically possible in JavaScript? Of course this would only apply for "if"/"while" statements.

On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]> wrote:
Still better to discuss it there - it's highly related to your suggestion. And I'm pretty sure an issue already exists related to that.

On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Naveen Chawla
Hi!

I didn't understand your reply.

I think currently it would raise an error, because 1 < 2 < 3 is currently saying (probably) true < 3.

But a "new" syntax could possibly parse that as a "chain" of comparisons.

Would this be acceptable to introduce into JavaScript (just curious)?

I've probably missed your point entirely, because I saw a short message "3 < 2 < 1 //true", and I've assumed you meant it in reverse.

On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
3 < 2 < 1;  // true


On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]> wrote:
Certain languages allow the expression 0<x<5. Does anybody know if this would be syntactically possible in JavaScript? Of course this would only apply for "if"/"while" statements.

On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]> wrote:
Still better to discuss it there - it's highly related to your suggestion. And I'm pretty sure an issue already exists related to that.

On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Claude Pache
Try typing `3 < 2 < 1` in the web console of your favourite browser, and see the result: it will evaluate to `true`. No, your browser isn’t buggy, it is just following blindly the semantics of `<`.

Modifying the meaning of `3 < 2 < 1` in order to make it evaluating  to `false` is a BC break. Is it acceptable? Dunno.

—Claude

Le 3 févr. 2020 à 15:23, Naveen Chawla <[hidden email]> a écrit :

Hi!

I didn't understand your reply.

I think currently it would raise an error, because 1 < 2 < 3 is currently saying (probably) true < 3.

But a "new" syntax could possibly parse that as a "chain" of comparisons.

Would this be acceptable to introduce into JavaScript (just curious)?

I've probably missed your point entirely, because I saw a short message "3 < 2 < 1 //true", and I've assumed you meant it in reverse.

On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
3 < 2 < 1;  // true


On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]> wrote:
Certain languages allow the expression 0<x<5. Does anybody know if this would be syntactically possible in JavaScript? Of course this would only apply for "if"/"while" statements.

On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]> wrote:
Still better to discuss it there - it's highly related to your suggestion. And I'm pretty sure an issue already exists related to that.

On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Isiah Meadows-3
Does make me wonder if engines should start collecting statistics on how often it's used and how often that result differs from if a Python-style chained comparison was done instead.

On Mon, Feb 3, 2020 at 09:18 Claude Pache <[hidden email]> wrote:
Try typing `3 < 2 < 1` in the web console of your favourite browser, and see the result: it will evaluate to `true`. No, your browser isn’t buggy, it is just following blindly the semantics of `<`.

Modifying the meaning of `3 < 2 < 1` in order to make it evaluating  to `false` is a BC break. Is it acceptable? Dunno.

—Claude

Le 3 févr. 2020 à 15:23, Naveen Chawla <[hidden email]> a écrit :

Hi!

I didn't understand your reply.

I think currently it would raise an error, because 1 < 2 < 3 is currently saying (probably) true < 3.

But a "new" syntax could possibly parse that as a "chain" of comparisons.

Would this be acceptable to introduce into JavaScript (just curious)?

I've probably missed your point entirely, because I saw a short message "3 < 2 < 1 //true", and I've assumed you meant it in reverse.

On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
3 < 2 < 1;  // true


On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]> wrote:
Certain languages allow the expression 0<x<5. Does anybody know if this would be syntactically possible in JavaScript? Of course this would only apply for "if"/"while" statements.

On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]> wrote:
Still better to discuss it there - it's highly related to your suggestion. And I'm pretty sure an issue already exists related to that.

On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Naveen Chawla
In reply to this post by Claude Pache
Thank you Claude! I did miss the point.

Have there ever been "BC" breaks introduced into the language before? If so, is there a sustainable standard for an "acceptable" one?



On Mon, 3 Feb 2020 at 22:47, Claude Pache <[hidden email]> wrote:
Try typing `3 < 2 < 1` in the web console of your favourite browser, and see the result: it will evaluate to `true`. No, your browser isn’t buggy, it is just following blindly the semantics of `<`.

Modifying the meaning of `3 < 2 < 1` in order to make it evaluating  to `false` is a BC break. Is it acceptable? Dunno.

—Claude

Le 3 févr. 2020 à 15:23, Naveen Chawla <[hidden email]> a écrit :

Hi!

I didn't understand your reply.

I think currently it would raise an error, because 1 < 2 < 3 is currently saying (probably) true < 3.

But a "new" syntax could possibly parse that as a "chain" of comparisons.

Would this be acceptable to introduce into JavaScript (just curious)?

I've probably missed your point entirely, because I saw a short message "3 < 2 < 1 //true", and I've assumed you meant it in reverse.

On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
3 < 2 < 1;  // true


On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]> wrote:
Certain languages allow the expression 0<x<5. Does anybody know if this would be syntactically possible in JavaScript? Of course this would only apply for "if"/"while" statements.

On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]> wrote:
Still better to discuss it there - it's highly related to your suggestion. And I'm pretty sure an issue already exists related to that.

On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
The pattern matching proposal does not handles the mentioned case:

switch(type) { case 0...5: } being the equivalent of switch(type) { case 0: case 1: case 2: case 3: case 4: case 5: }

On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <[hidden email]> wrote:
I agree with Oriol.
We already have the proposal pattern matching, that has a very similar effect.
I think that is better to improve pattern matching proposal in order to be able to match using ranges (or at least check if it's good to do) instead of create a new proposal.

On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]> wrote:

This sounds like https://github.com/tc39/proposal-pattern-matching


El 31/1/20 a les 10:57, Sultan ha escrit:
For example, the following:

switch (value) {
    case 0...9: break
    case 'a'...'z': break
}


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
--
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

kdex
Yes, there have been numerous backwards-incompatible changes to the language
over the years.

You can find a list of them in section E of the ECMAScript language standard.
IIRC, that list is non-exhaustive.

On Monday, February 3, 2020 6:35:12 PM CET Naveen Chawla wrote:

> Thank you Claude! I did miss the point.
>
> Have there ever been "BC" breaks introduced into the language before? If
> so, is there a sustainable standard for an "acceptable" one?
>
> On Mon, 3 Feb 2020 at 22:47, Claude Pache <[hidden email]> wrote:
> > Try typing `3 < 2 < 1` in the web console of your favourite browser, and
> > see the result: it will evaluate to `true`. No, your browser isn’t buggy,
> > it is just following blindly the semantics of `<`.
> >
> > Modifying the meaning of `3 < 2 < 1` in order to make it evaluating  to
> > `false` is a BC break. Is it acceptable? Dunno.
> >
> > —Claude
> >
> > Le 3 févr. 2020 à 15:23, Naveen Chawla <[hidden email]> a écrit :
> >
> > Hi!
> >
> > I didn't understand your reply.
> >
> > I think currently it would raise an error, because 1 < 2 < 3 is currently
> > saying (probably) true < 3.
> >
> > But a "new" syntax could possibly parse that as a "chain" of comparisons.
> >
> > Would this be acceptable to introduce into JavaScript (just curious)?
> >
> > I've probably missed your point entirely, because I saw a short message "3
> > < 2 < 1 //true", and I've assumed you meant it in reverse.
> >
> > On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
> >> 3 < 2 < 1;  // true
> >>
> >>
> >> On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]>
> >>
> >> wrote:
> >>> Certain languages allow the expression 0<x<5. Does anybody know if this
> >>> would be syntactically possible in JavaScript? Of course this would only
> >>> apply for "if"/"while" statements.
> >>>
> >>> On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]>
> >>>
> >>> wrote:
> >>>> Still better to discuss it there - it's highly related to your
> >>>> suggestion. And I'm pretty sure an issue already exists related to
> >>>> that.
> >>>>
> >>>> On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
> >>>>> The pattern matching proposal does not handles the mentioned case:
> >>>>>
> >>>>> switch(type) { case 0...5: } being the equivalent of switch(type) {
> >>>>> case 0: case 1: case 2: case 3: case 4: case 5: }
> >>>>>
> >>>>> On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <
> >>>>>
> >>>>> [hidden email]> wrote:
> >>>>>> I agree with Oriol.
> >>>>>> We already have the proposal pattern matching, that has a very
> >>>>>> similar effect.
> >>>>>> I think that is better to improve pattern matching proposal in order
> >>>>>> to be able to match using ranges (or at least check if it's good to
> >>>>>> do)
> >>>>>> instead of create a new proposal.
> >>>>>>
> >>>>>> On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]>
> >>>>>>
> >>>>>> wrote:
> >>>>>>> This sounds like https://github.com/tc39/proposal-pattern-matching
> >>>>>>>
> >>>>>>> El 31/1/20 a les 10:57, Sultan ha escrit:
> >>>>>>>
> >>>>>>> For example, the following:
> >>>>>>>
> >>>>>>> switch (value) {
> >>>>>>>
> >>>>>>>     case 0...9: break
> >>>>>>>     case 'a'...'z': break
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing
> >>>>>>> [hidden email]://mail.mozilla.org/listinfo/es-disc
> >>>>>>> uss
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing list
> >>>>>>> [hidden email]
> >>>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> es-discuss mailing list
> >>>>>> [hidden email]
> >>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>
> >>>>> _______________________________________________
> >>>>> es-discuss mailing list
> >>>>> [hidden email]
> >>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>
> >>>> --
> >>>> -----
> >>>>
> >>>> Isiah Meadows
> >>>> [hidden email]
> >>>> www.isiahmeadows.com
> >>>> _______________________________________________
> >>>> es-discuss mailing list
> >>>> [hidden email]
> >>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>
> >>> _______________________________________________
> >>> es-discuss mailing list
> >>> [hidden email]
> >>> https://mail.mozilla.org/listinfo/es-discuss
> >>
> >> --
> >>
> >>   Cheers,
> >>   --MarkM
> >
> > _______________________________________________
> > es-discuss mailing list
> > [hidden email]
> > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Mark S. Miller
While correct, each case asked the browser makers to make a risky and costly bet. When the risk was low and the payoff high, they've been great at doing so. This one does not fall into the viable risk vs reward territory.


On Mon, Feb 3, 2020 at 7:58 AM kdex <[hidden email]> wrote:
Yes, there have been numerous backwards-incompatible changes to the language
over the years.

You can find a list of them in section E of the ECMAScript language standard.
IIRC, that list is non-exhaustive.

On Monday, February 3, 2020 6:35:12 PM CET Naveen Chawla wrote:
> Thank you Claude! I did miss the point.
>
> Have there ever been "BC" breaks introduced into the language before? If
> so, is there a sustainable standard for an "acceptable" one?
>
> On Mon, 3 Feb 2020 at 22:47, Claude Pache <[hidden email]> wrote:
> > Try typing `3 < 2 < 1` in the web console of your favourite browser, and
> > see the result: it will evaluate to `true`. No, your browser isn’t buggy,
> > it is just following blindly the semantics of `<`.
> >
> > Modifying the meaning of `3 < 2 < 1` in order to make it evaluating  to
> > `false` is a BC break. Is it acceptable? Dunno.
> >
> > —Claude
> >
> > Le 3 févr. 2020 à 15:23, Naveen Chawla <[hidden email]> a écrit :
> >
> > Hi!
> >
> > I didn't understand your reply.
> >
> > I think currently it would raise an error, because 1 < 2 < 3 is currently
> > saying (probably) true < 3.
> >
> > But a "new" syntax could possibly parse that as a "chain" of comparisons.
> >
> > Would this be acceptable to introduce into JavaScript (just curious)?
> >
> > I've probably missed your point entirely, because I saw a short message "3
> > < 2 < 1 //true", and I've assumed you meant it in reverse.
> >
> > On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
> >> 3 < 2 < 1;  // true
> >>
> >>
> >> On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]>
> >>
> >> wrote:
> >>> Certain languages allow the expression 0<x<5. Does anybody know if this
> >>> would be syntactically possible in JavaScript? Of course this would only
> >>> apply for "if"/"while" statements.
> >>>
> >>> On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]>
> >>>
> >>> wrote:
> >>>> Still better to discuss it there - it's highly related to your
> >>>> suggestion. And I'm pretty sure an issue already exists related to
> >>>> that.
> >>>>
> >>>> On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
> >>>>> The pattern matching proposal does not handles the mentioned case:
> >>>>>
> >>>>> switch(type) { case 0...5: } being the equivalent of switch(type) {
> >>>>> case 0: case 1: case 2: case 3: case 4: case 5: }
> >>>>>
> >>>>> On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <
> >>>>>
> >>>>> [hidden email]> wrote:
> >>>>>> I agree with Oriol.
> >>>>>> We already have the proposal pattern matching, that has a very
> >>>>>> similar effect.
> >>>>>> I think that is better to improve pattern matching proposal in order
> >>>>>> to be able to match using ranges (or at least check if it's good to
> >>>>>> do)
> >>>>>> instead of create a new proposal.
> >>>>>>
> >>>>>> On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]>
> >>>>>>
> >>>>>> wrote:
> >>>>>>> This sounds like https://github.com/tc39/proposal-pattern-matching
> >>>>>>>
> >>>>>>> El 31/1/20 a les 10:57, Sultan ha escrit:
> >>>>>>>
> >>>>>>> For example, the following:
> >>>>>>>
> >>>>>>> switch (value) {
> >>>>>>>
> >>>>>>>     case 0...9: break
> >>>>>>>     case 'a'...'z': break
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing
> >>>>>>> [hidden email]://mail.mozilla.org/listinfo/es-disc
> >>>>>>> uss
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing list
> >>>>>>> [hidden email]
> >>>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> es-discuss mailing list
> >>>>>> [hidden email]
> >>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>
> >>>>> _______________________________________________
> >>>>> es-discuss mailing list
> >>>>> [hidden email]
> >>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>
> >>>> --
> >>>> -----
> >>>>
> >>>> Isiah Meadows
> >>>> [hidden email]
> >>>> www.isiahmeadows.com
> >>>> _______________________________________________
> >>>> es-discuss mailing list
> >>>> [hidden email]
> >>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>
> >>> _______________________________________________
> >>> es-discuss mailing list
> >>> [hidden email]
> >>> https://mail.mozilla.org/listinfo/es-discuss
> >>
> >> --
> >>
> >>   Cheers,
> >>   --MarkM
> >
> > _______________________________________________
> > es-discuss mailing list
> > [hidden email]
> > https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Naveen Chawla
Thanks! Although I think it is a value judgement about how much risk is worth how much reward, and which reward, so I wouldn't classify it as necessarily a complete set of criteria yet, but it is certainly in the right direction. And very interesting to me. Thank you.

On Tue, 4 Feb 2020 at 00:40, Mark S. Miller <[hidden email]> wrote:
While correct, each case asked the browser makers to make a risky and costly bet. When the risk was low and the payoff high, they've been great at doing so. This one does not fall into the viable risk vs reward territory.


On Mon, Feb 3, 2020 at 7:58 AM kdex <[hidden email]> wrote:
Yes, there have been numerous backwards-incompatible changes to the language
over the years.

You can find a list of them in section E of the ECMAScript language standard.
IIRC, that list is non-exhaustive.

On Monday, February 3, 2020 6:35:12 PM CET Naveen Chawla wrote:
> Thank you Claude! I did miss the point.
>
> Have there ever been "BC" breaks introduced into the language before? If
> so, is there a sustainable standard for an "acceptable" one?
>
> On Mon, 3 Feb 2020 at 22:47, Claude Pache <[hidden email]> wrote:
> > Try typing `3 < 2 < 1` in the web console of your favourite browser, and
> > see the result: it will evaluate to `true`. No, your browser isn’t buggy,
> > it is just following blindly the semantics of `<`.
> >
> > Modifying the meaning of `3 < 2 < 1` in order to make it evaluating  to
> > `false` is a BC break. Is it acceptable? Dunno.
> >
> > —Claude
> >
> > Le 3 févr. 2020 à 15:23, Naveen Chawla <[hidden email]> a écrit :
> >
> > Hi!
> >
> > I didn't understand your reply.
> >
> > I think currently it would raise an error, because 1 < 2 < 3 is currently
> > saying (probably) true < 3.
> >
> > But a "new" syntax could possibly parse that as a "chain" of comparisons.
> >
> > Would this be acceptable to introduce into JavaScript (just curious)?
> >
> > I've probably missed your point entirely, because I saw a short message "3
> > < 2 < 1 //true", and I've assumed you meant it in reverse.
> >
> > On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
> >> 3 < 2 < 1;  // true
> >>
> >>
> >> On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]>
> >>
> >> wrote:
> >>> Certain languages allow the expression 0<x<5. Does anybody know if this
> >>> would be syntactically possible in JavaScript? Of course this would only
> >>> apply for "if"/"while" statements.
> >>>
> >>> On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]>
> >>>
> >>> wrote:
> >>>> Still better to discuss it there - it's highly related to your
> >>>> suggestion. And I'm pretty sure an issue already exists related to
> >>>> that.
> >>>>
> >>>> On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
> >>>>> The pattern matching proposal does not handles the mentioned case:
> >>>>>
> >>>>> switch(type) { case 0...5: } being the equivalent of switch(type) {
> >>>>> case 0: case 1: case 2: case 3: case 4: case 5: }
> >>>>>
> >>>>> On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <
> >>>>>
> >>>>> [hidden email]> wrote:
> >>>>>> I agree with Oriol.
> >>>>>> We already have the proposal pattern matching, that has a very
> >>>>>> similar effect.
> >>>>>> I think that is better to improve pattern matching proposal in order
> >>>>>> to be able to match using ranges (or at least check if it's good to
> >>>>>> do)
> >>>>>> instead of create a new proposal.
> >>>>>>
> >>>>>> On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]>
> >>>>>>
> >>>>>> wrote:
> >>>>>>> This sounds like https://github.com/tc39/proposal-pattern-matching
> >>>>>>>
> >>>>>>> El 31/1/20 a les 10:57, Sultan ha escrit:
> >>>>>>>
> >>>>>>> For example, the following:
> >>>>>>>
> >>>>>>> switch (value) {
> >>>>>>>
> >>>>>>>     case 0...9: break
> >>>>>>>     case 'a'...'z': break
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing
> >>>>>>> [hidden email]://mail.mozilla.org/listinfo/es-disc
> >>>>>>> uss
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing list
> >>>>>>> [hidden email]
> >>>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> es-discuss mailing list
> >>>>>> [hidden email]
> >>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>
> >>>>> _______________________________________________
> >>>>> es-discuss mailing list
> >>>>> [hidden email]
> >>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>
> >>>> --
> >>>> -----
> >>>>
> >>>> Isiah Meadows
> >>>> [hidden email]
> >>>> www.isiahmeadows.com
> >>>> _______________________________________________
> >>>> es-discuss mailing list
> >>>> [hidden email]
> >>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>
> >>> _______________________________________________
> >>> es-discuss mailing list
> >>> [hidden email]
> >>> https://mail.mozilla.org/listinfo/es-discuss
> >>
> >> --
> >>
> >>   Cheers,
> >>   --MarkM
> >
> > _______________________________________________
> > es-discuss mailing list
> > [hidden email]
> > https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: syntax for case ranges

Jordan Harband
@kdex (sorry i missed this; your message was in my spam folder) if you find a way that Annex E is non-exhaustive, please file an issue on the spec - I would like it to be exhaustive.

On Mon, Feb 3, 2020 at 11:16 AM Naveen Chawla <[hidden email]> wrote:
Thanks! Although I think it is a value judgement about how much risk is worth how much reward, and which reward, so I wouldn't classify it as necessarily a complete set of criteria yet, but it is certainly in the right direction. And very interesting to me. Thank you.

On Tue, 4 Feb 2020 at 00:40, Mark S. Miller <[hidden email]> wrote:
While correct, each case asked the browser makers to make a risky and costly bet. When the risk was low and the payoff high, they've been great at doing so. This one does not fall into the viable risk vs reward territory.


On Mon, Feb 3, 2020 at 7:58 AM kdex <[hidden email]> wrote:
Yes, there have been numerous backwards-incompatible changes to the language
over the years.

You can find a list of them in section E of the ECMAScript language standard.
IIRC, that list is non-exhaustive.

On Monday, February 3, 2020 6:35:12 PM CET Naveen Chawla wrote:
> Thank you Claude! I did miss the point.
>
> Have there ever been "BC" breaks introduced into the language before? If
> so, is there a sustainable standard for an "acceptable" one?
>
> On Mon, 3 Feb 2020 at 22:47, Claude Pache <[hidden email]> wrote:
> > Try typing `3 < 2 < 1` in the web console of your favourite browser, and
> > see the result: it will evaluate to `true`. No, your browser isn’t buggy,
> > it is just following blindly the semantics of `<`.
> >
> > Modifying the meaning of `3 < 2 < 1` in order to make it evaluating  to
> > `false` is a BC break. Is it acceptable? Dunno.
> >
> > —Claude
> >
> > Le 3 févr. 2020 à 15:23, Naveen Chawla <[hidden email]> a écrit :
> >
> > Hi!
> >
> > I didn't understand your reply.
> >
> > I think currently it would raise an error, because 1 < 2 < 3 is currently
> > saying (probably) true < 3.
> >
> > But a "new" syntax could possibly parse that as a "chain" of comparisons.
> >
> > Would this be acceptable to introduce into JavaScript (just curious)?
> >
> > I've probably missed your point entirely, because I saw a short message "3
> > < 2 < 1 //true", and I've assumed you meant it in reverse.
> >
> > On Sat, 1 Feb 2020 at 23:12, Mark S. Miller <[hidden email]> wrote:
> >> 3 < 2 < 1;  // true
> >>
> >>
> >> On Sat, Feb 1, 2020 at 3:03 AM Naveen Chawla <[hidden email]>
> >>
> >> wrote:
> >>> Certain languages allow the expression 0<x<5. Does anybody know if this
> >>> would be syntactically possible in JavaScript? Of course this would only
> >>> apply for "if"/"while" statements.
> >>>
> >>> On Fri, 31 Jan 2020 at 22:41, Isiah Meadows <[hidden email]>
> >>>
> >>> wrote:
> >>>> Still better to discuss it there - it's highly related to your
> >>>> suggestion. And I'm pretty sure an issue already exists related to
> >>>> that.
> >>>>
> >>>> On Fri, Jan 31, 2020 at 09:06 Sultan <[hidden email]> wrote:
> >>>>> The pattern matching proposal does not handles the mentioned case:
> >>>>>
> >>>>> switch(type) { case 0...5: } being the equivalent of switch(type) {
> >>>>> case 0: case 1: case 2: case 3: case 4: case 5: }
> >>>>>
> >>>>> On Fri, Jan 31, 2020 at 7:36 PM Bruno Macabeus <
> >>>>>
> >>>>> [hidden email]> wrote:
> >>>>>> I agree with Oriol.
> >>>>>> We already have the proposal pattern matching, that has a very
> >>>>>> similar effect.
> >>>>>> I think that is better to improve pattern matching proposal in order
> >>>>>> to be able to match using ranges (or at least check if it's good to
> >>>>>> do)
> >>>>>> instead of create a new proposal.
> >>>>>>
> >>>>>> On Fri, 31 Jan 2020 at 14:08, Oriol _ <[hidden email]>
> >>>>>>
> >>>>>> wrote:
> >>>>>>> This sounds like https://github.com/tc39/proposal-pattern-matching
> >>>>>>>
> >>>>>>> El 31/1/20 a les 10:57, Sultan ha escrit:
> >>>>>>>
> >>>>>>> For example, the following:
> >>>>>>>
> >>>>>>> switch (value) {
> >>>>>>>
> >>>>>>>     case 0...9: break
> >>>>>>>     case 'a'...'z': break
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing
> >>>>>>> [hidden email]://mail.mozilla.org/listinfo/es-disc
> >>>>>>> uss
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> es-discuss mailing list
> >>>>>>> [hidden email]
> >>>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> es-discuss mailing list
> >>>>>> [hidden email]
> >>>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>>
> >>>>> _______________________________________________
> >>>>> es-discuss mailing list
> >>>>> [hidden email]
> >>>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>>
> >>>> --
> >>>> -----
> >>>>
> >>>> Isiah Meadows
> >>>> [hidden email]
> >>>> www.isiahmeadows.com
> >>>> _______________________________________________
> >>>> es-discuss mailing list
> >>>> [hidden email]
> >>>> https://mail.mozilla.org/listinfo/es-discuss
> >>>
> >>> _______________________________________________
> >>> es-discuss mailing list
> >>> [hidden email]
> >>> https://mail.mozilla.org/listinfo/es-discuss
> >>
> >> --
> >>
> >>   Cheers,
> >>   --MarkM
> >
> > _______________________________________________
> > es-discuss mailing list
> > [hidden email]
> > https://mail.mozilla.org/listinfo/es-discuss


--
  Cheers,
  --MarkM
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss