Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Closures #22

Closed
mrft opened this Issue · 5 comments

2 participants

@mrft

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?

@jbmusso
Owner

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.

@jbmusso
Owner

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

@jbmusso
Owner

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 jbmusso closed this
@jbmusso
Owner

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 jbmusso added the enhancement label
@jbmusso
Owner

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
Something went wrong with that request. Please try again.