Transitive closure
Functions
iterate(Function fn,Integer maxdepth,Object,Object)->(Object,Object)
iterate(Function fn,Integer maxdepth,Object o)->Object r
tclose(Function fn,Object o)->Bag
fn(fn(...fn(o)))
tclose(Function fn,Object o,Object a1,Object a2)->Bag of (Object,Object,Object)
fn(fn(...fn(o,a1,a2),a1,a2),a1,a2)
tclose(Function fn,Object o,Object a1)->Bag of (Object,Object)
fn(fn(...fn(o,a1),a1),a1)
tclose(Function fn,Object o,Object a1,Object a2,Object a3)->Bag of (Object,
Object,Object,Object)
fn(fn(...fn(o,a1,a2,a3),a1,a2,a3),a1,a2,a3)
tclosed(Function fn,Object o,Integer maxdepth)->(Object r,Integer depth)
Get the transitive closure of applying the function fn on the argument o recursively no more results produced or maxdepth reached. The result pairs contain the produced objects and their distances from the root o.
traverse(Function fn,Object o)->Bag
traverse(Function fn,Object,Object,Object)->Bag of (Object,Object,Object)
traverse(Function fn,Object,Object)->Bag of (Object,Object)
traverse(Function fn,Object,Object,Object,Object)->Bag of (Object,Object,Object,
Object)