- From: David Bruant <bruant.d@gmail.com>
- Date: Mon, 19 Aug 2013 01:03:51 +0200
- To: Jake Verbaten <raynos2@gmail.com>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>
Le 19/08/2013 00:44, Jake Verbaten a écrit :
> Why can't we just avoid namespace collisions completely using our
> module system
>
> ```js
> import { find, findIndex } from "@array";
>
> var res = find([1, 2, 3], (n) => return n === 2)
> ```
We don't even need modules. Underscore is already this that with success [1]
The "problem" is that people want to do [1,2,3].find( n => n === 2 )
> If necessary we
we "TC39"?
a non-standard extension for things like TypeScript?
> can have syntax sugar for importing symbol methods instead of
> functions. Or maybe implement the syntax sugar as some kind of infix
> function call operator so you can call functions as if they are methods
>
> `[1, 2, 3]@find((n) => return n === 2)`
The definition of x@y(...args) is y.call(x, ...args) right? That's an
interesting idea. This very syntax seems to collide with relationships
[2], but maybe another syntax could work.
But I am skeptical of any idea that requires adding syntax to the
language, because it pushes further in time the solution.
And since a library author can't force every library user to use a given
tool (transpiler), I'm afraid library authors will prefer defining
things on Array.prototype directly so everyone can use them right away.
David
[1] http://underscorejs.org/#find
[2] http://wiki.ecmascript.org/doku.php?id=strawman:relationships
Ps : totally unimportant, but "(n) => return n === 2" is a syntax error.
I think the form without brackets need the RHS to be and expression and
"return something" is a statement or something like that.
Received on Sunday, 18 August 2013 23:04:21 UTC