Few nits inline: -----
Isiah Meadows m...@isiahmeadows.com Looking for web consulting? Or a new website? Send me an email and we can get started. www.isiahmeadows.com On Fri, Jul 14, 2017 at 11:11 PM, Bob Myers <r...@gol.com> wrote: > The proposal to write `arr.reduce((+))`, with `(+)` as an alternative to > `(a, b) => a + b` is admirably concise, but syntactically challenging. Actually, it's not as *syntactically* challenging as you might think; it can be discerned just by recognizing the token sequence `(` @ `)`, where @ is the operator's token in question. > > The idea is a new form of function we'll call a "pound function", written as > `#{ }`, Within the body, parameters are available as `#0`, `#1`, etc. Potential complication: the parameter names visually conflict with the private member proposal. https://github.com/tc39/proposal-class-fields > > ```js > arr.reduce(#{# + #}) > arr.sort(#{#.order - #.order}) > ``` This quite honestly looks like line noise. Also, it doesn't look clear at a glance whether it should be equivalent to `(a, b) => a + b` or `a => a + a` (using the first example). > > If need be, we can define `...##` inside pound functions as referring to the > argument list, so > > ```js > const sumParams = #{##.reduce(#{# + #})}; > ``` That does not look very elegant nor readable. > > Ugh. Anyway, I will leave it others to opine on whether this cryptic syntax > is worth the trouble, issues related to nested pound functions, etc. etc. > You might want to investigate Clojure's [1] and Swift's [2] similar existing syntaxes for this. [1]: https://coderwall.com/p/panlza/function-syntax-in-clojure [2]: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html > > Bob > > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss