You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2017/12/06 16:48:00 UTC

[jira] [Created] (TINKERPOP-1849) Provide a way to fold() with an index

stephen mallette created TINKERPOP-1849:
-------------------------------------------

             Summary: Provide a way to fold() with an index
                 Key: TINKERPOP-1849
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1849
             Project: TinkerPop
          Issue Type: Improvement
          Components: process
    Affects Versions: 3.3.0
            Reporter: stephen mallette


In Groovy you can call {{withIndex()}} to generate output like this:

{code}
gremlin> g.V().fold().next().withIndex()
==>[v[1],0]
==>[v[2],1]
==>[v[3],2]
==>[v[4],3]
==>[v[5],4]
==>[v[6],5]
{code}

We can currently simulate this with Gremlin via:

{code}
gremlin> g.V().project("a","b").by().by(select("x").count(local)).store("x").map(union(select('a'), select('b')).fold()).fold().next()
==>[v[1],0]
==>[v[2],1]
==>[v[3],2]
==>[v[4],3]
==>[v[5],4]
==>[v[6],5]
{code}

but it's not easy to follow, efficient, or potentially foolproof. Perhaps we can add an option to {{fold()}} that would take an enum of "fold operators".



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)