tree = { vertices -> results << vertices vertices.each() { children = it.out().toList() if (children) tree(children) } results }
Hey Marko -
As Pierre pointed out, this isn't quite right...
tree = { vertices -> results << vertices vertices.each() { children = it.out().toList() if (children) tree(children) } results }
Excellent. Using your code, we get expected results:gremlin> g.v(1).outTree()==>[v[1], [v[2], v[3], v[4], [v[5], v[3]]]]gremlin> g.v(3).inTree()==>[v[3], [v[1], v[4], [v[1]], v[6]]]> how can I iterate over the results?
You're right.+1 for generic pipePreference for .tree vs .fold:g.v(1).out.tree.out.tree <=> g.v(1).outTree.outTree
g.v(1).out.fold.out.fold <=> g.v(1).outTree.outTree
I agree we should do a tree pipe. There is a ticket. If some wants to pull request and its good, I will merge.
On cell so don't have ticket number off hand.
Marko.