[
https://issues.apache.org/jira/browse/TINKERPOP3-788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14718607#comment-14718607
]
Marko A. Rodriguez commented on TINKERPOP3-788:
-----------------------------------------------
I still don't get what you are trying to accomplish. Perhaps, instead of
{{Foo}} you can provide an example of {{curry()}} over
{{TinkerFactory.createModern()}} graph?
I do see that you are trying to use runtime parameterization to call a user
supplied function called {{Foo}}. And, as you say, {{Foo}} can be any function.
In essence, you are simulating lambdas without be bound to the lambda
infrastructure of the underlying host language.
I would like to see a practical example. My main concerns -- "is this
GraphTraversal" or "general functional technique." If the latter, then a
"FunctionalProgrammingTraversal" may be the way to go. .. ?
> Curry step
> ----------
>
> Key: TINKERPOP3-788
> URL: https://issues.apache.org/jira/browse/TINKERPOP3-788
> Project: TinkerPop 3
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.0.0-incubating
> Reporter: Matt Frantz
> Assignee: Marko A. Rodriguez
>
> The {{curry}} step would be a way to introduce user-defined types without
> lambdas.
> {noformat}
> <E2> GraphTraversal<S, E2> curry(Class<? extends E2> c);
> {noformat}
> It would be the equivalent of a {{map}} step that instantiates the class with
> a single constructor argument provided by the traverser.
> {noformat}
> g.V().curry(MyType.class)
> g.V().<MyType>map{it -> new MyType(it.get())}
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)