Can we just let this thread die? The pipeline-based variant is only 2 tokens more than the shorthand, which provides no additional use. Additionally, the proposal as a whole is hardly useful outside some uncommon cases that already have workarounds.
On Thu, Sep 21, 2017, 07:35 Michael Rosefield <[email protected]> wrote: > Oh, yes, but the real benefit here is that it consolidates this as a > combination of the normal ternary operator and the piping operator; an > organic synthesis of existing operators as opposed to an entirely new one > grafted on to the language. > > I'd go so far as to call it the 'piping ternary operator' and make it an > extension of the piping operator proposal. > > On Thu, 21 Sep 2017 at 12:22 Michał Wadas <[email protected]> wrote: > >> Actual characters are minor issue. There are many unused combinations of >> "special" characters. Eg. >> ?> ?: :? ?() @? ?* ?# ?@ @? -? =? ?= (?) etc. >> >> >> >> On Thu, Sep 21, 2017 at 11:19 AM, Michael Rosefield < >> [email protected]> wrote: >> >>> There was a suggestion that came up in my original reddit post that I >>> think merits discussion here. >>> >>> I know one of the main arguments against this new operator is to prevent >>> needless and confusing language explosion, but u/notNullOrVoid pointed out >>> that this bears similarity to another operator already under TC39 >>> consideration, the pipeline-operator ( >>> https://github.com/tc39/proposal-pipeline-operator). >>> >>> My suggestion could then be implemented as follows: >>> >>> const foo = getSomething() |> x => x ? dosomething(x) : >>> doSomethingElse(); >>> >>> And this ternary could be simply a pipeline variant: >>> >>> const foo = getSomething() ?> x => dosomething(x) : doSomethingElse(); >>> >>> That reads much clearer and also takes care of the syntactically invalid >>> ?! formularion. >>> >>> On Wed, 20 Sep 2017 at 14:22 Naveen Chawla <[email protected]> >>> wrote: >>> >>>> As your example shows, for loops can be reduced to array reduction >>>> function calls. `if` `else`s can be represented by ternaries. >>>> >>>> `while` loops aren't so straightforward but can be factored into single >>>> function calls. They are less common anyway. >>>> >>>> I find single expressions listed as `(a, b, c)` more readable than code >>>> blocks who eventually evaluate to a single value each. >>>> >>>> So, even if `do` expressions were introduced into ES, I would avoid >>>> using them as much as I could, unless it were really smarter and more >>>> readable to use them than any of the alternatives >>>> >>>> On Wed, 20 Sep 2017 at 16:11 T.J. Crowder < >>>> [email protected]> wrote: >>>> >>>>> On Wed, Sep 20, 2017 at 11:28 AM, Naveen Chawla <[email protected]> >>>>> wrote: >>>>> > >>>>> > The comma operator seems to make the `do` concept redundant, at >>>>> > least for me. >>>>> >>>>> No, not at all. Again: With the comma operator, you can't use >>>>> *statements*, only expressions. With the `do` expression, you can use >>>>> actual statements: >>>>> >>>>> ```js >>>>> const x = do { >>>>> for (const x of getTheThings()) { >>>>> if (x.id == something) { >>>>> x.foo; >>>>> } >>>>> } >>>>> }; >>>>> ``` >>>>> >>>>> ...which is basically: >>>>> >>>>> ```js >>>>> const x = getTheThings().find(x => x.id == something).foo; >>>>> ``` >>>>> >>>>> ...except it doesn't throw if `find` returns `undefined`, and isn't a >>>>> series of function calls. >>>>> >>>>> `do` expressions are basically to address overly-complex conditional >>>>> expressions and IIFEs. >>>>> More: https://gist.github.com/dherman/1c97dfb25179fa34a41b5fff040f9879 >>>>> >>>>> -- T.J. Crowder >>>>> >>>>> _______________________________________________ >>>> es-discuss mailing list >>>> [email protected] >>>> https://mail.mozilla.org/listinfo/es-discuss >>>> >>> >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] >>> https://mail.mozilla.org/listinfo/es-discuss >>> >>> >> _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

