Closures #22

Closed
mrft opened this Issue Mar 4, 2014 · 5 comments

Comments

Projects
None yet
2 participants

mrft commented Mar 4, 2014

this is more of a question than an issue, but:

You say closures don't map to javascript, but couldn't this example

g.v(1).out().gather("{it.size()}");

also be written as

g.v(1).out().gather( function(it) { return it.size(); } );

in javascript?

Owner

jbmusso commented Mar 4, 2014

I think I'm in favor of this syntax, and it will most likely be supported somewhere on the path toward v1.0. I've thought of adding this in the past though that'd require quite a bit of refactoring (ie. rewrite the way arguments are handled).

Currently, any strings matching the /^{.*}$/ Regex pattern are considered closures. This will certainly cause bugs when passing "literal" string arguments matching this pattern. This is definitely an issue that needs to be addressed.

Owner

jbmusso commented Mar 4, 2014

To answer your question: I see no reason why this couldn't be written in JavaScript the way you wrote it :).

Owner

jbmusso commented Mar 14, 2014

By the way, thanks for showing interest in gRex. Feel free to browse and experiment with the current develop branch, I'd happily and carefully review your suggestions and try to improve the library.

jbmusso closed this Mar 14, 2014

Owner

jbmusso commented Mar 25, 2014

Note that as was discussed recently on irc, the following could also work with appropriate function binding:

g.v(1).out().gather(function() { return this.size(); } );

jbmusso added the enhancement label Apr 23, 2014

Owner

jbmusso commented Apr 23, 2014

I've been looking today for ways to implement it and I believe ES6 Proxy are needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment