You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Daniel Kuppitz (JIRA)" <ji...@apache.org> on 2018/12/17 17:15:00 UTC

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

     [ https://issues.apache.org/jira/browse/TINKERPOP-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kuppitz closed TINKERPOP-1849.
-------------------------------------
       Resolution: Fixed
    Fix Version/s: 3.4.0

> 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
>            Assignee: Daniel Kuppitz
>            Priority: Major
>             Fix For: 3.4.0
>
>
> 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
(v7.6.3#76005)